This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

recent troubles with float vectors & bitwise ops


Hello,
# cat vecop.cc
template<typename T> T foo() {
T
a = { 0, 1, 2, 3 }, b = { 4, 5, 6, 7 },
c = a | b,
d = c & b,
e = d ^ b;
return e;
}
int main() {
typedef float v4sf_t __attribute__ ((__vector_size__ (16)));
typedef int v4si_t __attribute__ ((__vector_size__ (16)));
foo<v4si_t>();
foo<v4sf_t>();
return 0;
}
# /usr/local/gcc-4.3-svn.old5/bin/g++ -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-4.3-svn --enable-languages=c,c++ --enable-threads=posix --disable-checking --disable-nls --disable-shared --disable-win32-registry --with-system-zlib --disable-multilib --verbose --with-gcc=gcc-4.2 --with-gnu-ld --with-gnu-as --enable-checking=none --disable-bootstrap
Thread model: posix
gcc version 4.3.0 20070808 (experimental)
# /usr/local/gcc-4.3-svn.old5/bin/g++ vecop.cc
# /usr/local/gcc-4.3-svn.old6/bin/g++ -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-4.3-svn --enable-languages=c,c++ --enable-threads=posix --disable-checking --disable-nls --disable-shared --disable-win32-registry --with-system-zlib --disable-multilib --verbose --with-gcc=gcc-4.2 --with-gnu-ld --with-gnu-as --enable-checking=none --disable-bootstrap
Thread model: posix
gcc version 4.3.0 20070819 (experimental)
# /usr/local/gcc-4.3-svn.old6/bin/g++ vecop.cc
vecop.cc: In function 'T foo() [with T = float __vector__]':
vecop.cc:13: instantiated from here
vecop.cc:4: error: invalid operands of types 'float __vector__' and 'float __vector__' to binary 'operator|'
vecop.cc:5: error: invalid operands of types 'float __vector__' and 'float __vector__' to binary 'operator&'
vecop.cc:6: error: invalid operands of types 'float __vector__' and 'float __vector__' to binary 'operator^'


Apparently it's still there as of right now, on x86-64 at least. I think this is not supposed to happen but i'm not sure, hence the mail.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]