blob: b2790166689b7f9d36a1dbd952444adef6551514 [file] [log] [blame]
/* PR target/85730 */
/* { dg-do compile } */
/* { dg-options "-O2 -mno-sse4" } */
typedef char V __attribute__((vector_size(4)));
V
test_and (V v, char c)
{
v[0] &= c;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]andb" } } */
V
test_or (V v, char c)
{
v[0] |= c;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]orb" } } */
V
test_xor (V v, char c)
{
v[0] ^= c;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]xorb" } } */
V
test_not (V v)
{
v[0] = ~v[0];
return v;
}
/* { dg-final { scan-assembler "\[ \t\]notb" } } */
V
test_sal (V v)
{
v[0] <<= 3;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]salb" } } */
V
test_sar (V v)
{
v[0] >>= 3;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]sarb" } } */
V
test_add (V v, char c)
{
v[0] += c;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]addb" } } */
V
test_sub (V v, char c)
{
v[0] -= c;
return v;
}
/* { dg-final { scan-assembler "\[ \t\]subb" } } */
V
test_neg (V v)
{
v[0] = -v[0];
return v;
}
/* { dg-final { scan-assembler "\[ \t\]negb" } } */