comp.lang.ada
 help / color / mirror / Atom feed
* Allocated aligned arrays
@ 2005-11-18 21:35 ldb
  2005-11-18 22:06 ` jimmaureenrogers
  2005-11-19  7:36 ` Simon Wright
  0 siblings, 2 replies; 12+ messages in thread
From: ldb @ 2005-11-18 21:35 UTC (permalink / 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?




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-11-27 20:49 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-18 21:35 Allocated aligned arrays ldb
2005-11-18 22:06 ` 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

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