1 /* PR target/78904 */ 2 /* { dg-do assemble } */ 3 /* { dg-options "-O2" } */ 4 5 typedef __SIZE_TYPE__ size_t; 6 7 struct S1 8 { 9 unsigned char pad1; 10 unsigned char val; 11 unsigned short pad2; 12 }; 13 14 extern struct S1 t[256]; 15 test_and(struct S1 a,size_t i)16struct S1 test_and (struct S1 a, size_t i) 17 { 18 a.val &= t[i].val; 19 20 return a; 21 } 22 test_or(struct S1 a,size_t i)23struct S1 test_or (struct S1 a, size_t i) 24 { 25 a.val |= t[i].val; 26 27 return a; 28 } 29 test_xor(struct S1 a,size_t i)30struct S1 test_xor (struct S1 a, size_t i) 31 { 32 a.val ^= t[i].val; 33 34 return a; 35 } 36 test_add(struct S1 a,size_t i)37struct S1 test_add (struct S1 a, size_t i) 38 { 39 a.val += t[i].val; 40 41 return a; 42 } 43