blob: 3e7445ad9bbc39e2eaf1e11815f0b9fff75b5ec7 [file] [log] [blame]
/* PR target/100637 */
/* { dg-do compile } */
/* { dg-options "-O2 -msse2 -dp" } */
typedef char __v4qi __attribute__ ((__vector_size__ (4)));
__v4qi and (__v4qi a, __v4qi b) { return a & b; };
/* { dg-final { scan-assembler "andv4qi3" } } */
__v4qi andn (__v4qi a, __v4qi b) { return a & ~b; };
/* { dg-final { scan-assembler "andnotv4qi3" } } */
__v4qi or (__v4qi a, __v4qi b) { return a | b; };
/* { dg-final { scan-assembler "iorv4qi3" } } */
__v4qi xor (__v4qi a, __v4qi b) { return a ^ b; };
__v4qi not (__v4qi a) { return ~a; };
/* { dg-final { scan-assembler-times "xorv4qi3" 2 } } */
__v4qi plus (__v4qi a, __v4qi b) { return a + b; };
/* { dg-final { scan-assembler "addv4qi3" } } */
__v4qi minus (__v4qi a, __v4qi b) { return a - b; };
__v4qi neg (__v4qi a) { return -a; };
/* { dg-final { scan-assembler-times "subv4qi3" 2 } } */