| /* Verify that the TST insn is used to extract a zero extended |
| single bit into the T bit (for a following conditional branch) and into |
| a GP register. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| /* { dg-final { scan-assembler-not "exts|extu|sha|shld|subc|xor" } } */ |
| |
| /* { dg-final { scan-assembler-times "tst" 61 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#1," 1 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#2" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#4" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#8" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#16" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#32" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#64" 2 { target { ! sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#128" 2 { target { ! sh2a } } } } */ |
| |
| /* { dg-final { scan-assembler-times "tst" 54 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#1," 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#2" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#4" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#8" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#16" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#32" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#64" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "tst\t#128" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#1," 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#2" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#3" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#4" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#5" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#6" 1 { target { sh2a } } } } */ |
| /* { dg-final { scan-assembler-times "bld\t#7" 1 { target { sh2a } } } } */ |
| |
| /* { dg-final { scan-assembler-times "and\t#1" 1 } } */ |
| /* { dg-final { scan-assembler-times "cmp/pz" 1 } } */ |
| /* { dg-final { scan-assembler-times "shll" 1 } } */ |
| |
| typedef struct |
| { |
| unsigned int b31 : 1; |
| unsigned int b30 : 1; |
| unsigned int b29 : 1; |
| unsigned int b28 : 1; |
| unsigned int b27 : 1; |
| unsigned int b26 : 1; |
| unsigned int b25 : 1; |
| unsigned int b24 : 1; |
| unsigned int b23 : 1; |
| unsigned int b22 : 1; |
| unsigned int b21 : 1; |
| unsigned int b20 : 1; |
| unsigned int b19 : 1; |
| unsigned int b18 : 1; |
| unsigned int b17 : 1; |
| unsigned int b16 : 1; |
| unsigned int b15 : 1; |
| unsigned int b14 : 1; |
| unsigned int b13 : 1; |
| unsigned int b12 : 1; |
| unsigned int b11 : 1; |
| unsigned int b10 : 1; |
| unsigned int b9 : 1; |
| unsigned int b8 : 1; |
| unsigned int b7 : 1; |
| unsigned int b6 : 1; |
| unsigned int b5 : 1; |
| unsigned int b4 : 1; |
| unsigned int b3 : 1; |
| unsigned int b2 : 1; |
| unsigned int b1 : 1; |
| unsigned int b0 : 1; |
| } S; |
| |
| #define make_funcs(bitpos)\ |
| unsigned int test_b##bitpos##_0 (S s)\ |
| {\ |
| return s.b##bitpos;\ |
| }\ |
| unsigned int test_b##bitpos##_1 (S s)\ |
| {\ |
| return !s.b##bitpos;\ |
| }\ |
| |
| make_funcs (0) |
| make_funcs (1) |
| make_funcs (2) |
| make_funcs (3) |
| make_funcs (4) |
| make_funcs (5) |
| make_funcs (6) |
| make_funcs (7) |
| make_funcs (8) |
| make_funcs (9) |
| make_funcs (10) |
| make_funcs (11) |
| make_funcs (12) |
| make_funcs (13) |
| make_funcs (14) |
| make_funcs (15) |
| make_funcs (16) |
| make_funcs (17) |
| make_funcs (18) |
| make_funcs (19) |
| make_funcs (20) |
| make_funcs (21) |
| make_funcs (22) |
| make_funcs (23) |
| make_funcs (24) |
| make_funcs (25) |
| make_funcs (26) |
| make_funcs (27) |
| make_funcs (28) |
| make_funcs (29) |
| make_funcs (30) |
| make_funcs (31) |