blob: 9d9361c2dbfc959ac037605f684b0fff3478cefe [file] [log] [blame]
/* Check that storing the (negated) T bit as all ones or zeros in a reg
uses the subc instruction. */
/* { dg-do compile } */
/* { dg-options "-O1 -mbranch-cost=2" } */
/* { dg-final { scan-assembler-not "movt|tst|negc|movrt" } } */
/* { dg-final { scan-assembler-times "subc" 3 } } */
/* { dg-final { scan-assembler-times "not\t" 1 } } */
/* { dg-final { scan-assembler-times "shll" 1 } } */
/* { dg-final { scan-assembler-not "cmp/gt" } } */
int
test_00 (int x, int y)
{
/* 1x subc, 1x not */
return x != y ? -1 : 0;
}
int
test_01 (int x, int y)
{
/* 1x subc */
return x == y ? -1 : 0;
}
int
test_02 (int x)
{
/* 1x shll, 1x subc */
return 0 <= x ? 0 : -1;
}