/* 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; }