1 /* PR target/78904 */
2 /* { dg-do assemble { target { ! ia32 } } } */
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   unsigned int pad3;
13 };
14 
15 extern unsigned char t[256];
16 
foo(struct S1 a,size_t i)17 void foo (struct S1 a, size_t i)
18 {
19   register size_t _i __asm ("r10") = i;
20 
21   asm volatile ("" : "+r" (_i));
22   t[_i] = a.val;
23 }
24