November 20, 2014 Question about Vectors | ||||
---|---|---|---|---|
| ||||
So I was reading the documentation page: http://dlang.org/simd.html and noticed what appears to be a typo: int4 v; (cast(int*)&v)[3] = 2; // set 3rd element of the 4 int vector (cast(int[4])v)[3] = 2; // set 3rd element of the 4 int vector v.array[3] = 2; // set 3rd element of the 4 int vector v.ptr[3] = 2; // set 3rd element of the 4 int vector v.array[3] = 2; and v.ptr[3] = 2; set the fourth element, and not the third. As I was verifying this, I realized I had to compile it in 64 bit code. The 32 bit code produced the error "SIMD vector types not supported on this platform". My test code is: void main() { import std.stdio; import core.simd; int4 v = 7; v.ptr[3] = 2; writeln(v.array[]); } Is that related to me compiling while using a 64 bit OS, or is that true of any 32 bit OS, and thus, vectors can't be used in programs intended to be run on 32 bit OSs? Thanks, Charles |
November 21, 2014 Re: Question about Vectors | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles | Am Thu, 20 Nov 2014 20:17:31 +0000 schrieb "Charles" <csmith.ku2013@gmail.com>: > So I was reading the documentation page: http://dlang.org/simd.html and noticed what appears to be a typo: > > int4 v; > (cast(int*)&v)[3] = 2; // set 3rd element of the 4 int vector > (cast(int[4])v)[3] = 2; // set 3rd element of the 4 int vector > v.array[3] = 2; // set 3rd element of the 4 int vector > v.ptr[3] = 2; // set 3rd element of the 4 int vector > > v.array[3] = 2; and v.ptr[3] = 2; set the fourth element, and not the third. > > As I was verifying this, I realized I had to compile it in 64 bit code. The 32 bit code produced the error "SIMD vector types not supported on this platform". > > My test code is: > > void main() { > import std.stdio; > import core.simd; > > int4 v = 7; > v.ptr[3] = 2; > writeln(v.array[]); > } > > > Is that related to me compiling while using a 64 bit OS, or is that true of any 32 bit OS, and thus, vectors can't be used in programs intended to be run on 32 bit OSs? > > Thanks, > Charles DMD supports SIMD only on amd64, but you can use the GDC or LDC2 compilers if you need 32-bit support for vector types. -- Marco |
Copyright © 1999-2021 by the D Language Foundation