comp.lang.ada
 help / color / mirror / Atom feed
From: "ldb" <louis@pittpatt.com>
Subject: Allocated aligned arrays
Date: 18 Nov 2005 13:35:53 -0800
Date: 2005-11-18T13:35:53-08:00	[thread overview]
Message-ID: <1132349753.719540.119910@g44g2000cwa.googlegroups.com> (raw)

I'm trying to allocate two floating point (4 bytes each) arrays that
are both address-aligned to 16. Ideally, the first element of each
array is aligned on 16 (ie, the address mod 16 = 0), but that's not
really necessary, as long as they are both aligned to the same mod 16
(i don't care if the first element is 8 or 12 or whatever, as long as
both arrays have the same).

I'm trying to set up these arrays so I can use aligned SSE instructions
in assembly.

I have tried something along the lines of:

type Matrix is array (INTEGER range <>, INTEGER range <>) of float;
for Matrix'Alignment use 16;


and then, for an input of 0..200 by 0..200

sam := new Matrix(0..200,2..198)
bob := new Matrix(2..198,2..198);


These are the actual indicies I would use (it's an image processing
algorithm that trims the edges). I'm not sure if the strange indices
could be causing the problem, but I cannot imagine it is.

However, the three matricies, input, sam, and bob aren't necessarily
aligned (for certain input index ranges they are, by default, and some
times they are not. The alignment statement I am using seems to have no
effect).

Any ideas?




             reply	other threads:[~2005-11-18 21:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-18 21:35 ldb [this message]
2005-11-18 22:06 ` Allocated aligned arrays jimmaureenrogers
2005-11-18 22:31   ` ldb
2005-11-20 11:21     ` Martin Krischik
2005-11-18 22:51   ` Simon Wright
2005-11-18 23:03     ` ldb
2005-11-19  7:36 ` Simon Wright
2005-11-19 13:12   ` Jeff Creem
2005-11-23  0:17   ` Randy Brukardt
2005-11-23 14:28     ` ldb
2005-11-24  1:39       ` Frank J. Lhota
2005-11-27 20:49       ` Robert A Duff
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox