| /* PR tree-optimization/72835. */ |
| /* { dg-do run } */ |
| /* { dg-options "-O2" } */ |
| /* { dg-require-effective-target int32plus } */ |
| |
| struct struct_1 { |
| unsigned int m1 : 6 ; |
| unsigned int m2 : 24 ; |
| unsigned int m3 : 6 ; |
| }; |
| |
| unsigned short var_32 = 0x2d10; |
| |
| struct struct_1 s1; |
| |
| void init () |
| { |
| s1.m1 = 4; |
| s1.m2 = 0x7ca4b8; |
| s1.m3 = 24; |
| } |
| |
| void foo () |
| { |
| unsigned int c |
| = ((unsigned int) s1.m2) * (-((unsigned int) s1.m3)) |
| + (var_32) * (-((unsigned int) (s1.m1))); |
| if (c != 4098873984) |
| __builtin_abort (); |
| } |
| |
| int main () |
| { |
| init (); |
| foo (); |
| return 0; |
| } |