1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
void def(void);
void r0(void);
void r1(void);
void sw_long(long long a)
{
switch (a) {
case 0: return r0();
case 1LL << 00: return r1();
case 1LL << 32: return r1();
}
return def();
}
/*
* check-name: switch-long
* check-command: test-linearize -Wno-decl $file
*
* check-output-start
sw_long:
.L0:
<entry-point>
switch.64 %arg1, 0 -> .L2, 1 -> .L3, 4294967296 -> .L4, default -> .L1
.L2:
call r0
br .L5
.L3:
call r1
br .L5
.L4:
call r1
br .L5
.L1:
call def
br .L5
.L5:
ret
* check-output-end
*/
|