1 /* { dg-do run } */
2 /* { dg-options "-O1" } */
3 
4 /* This failed because if conversion didn't handle insv patterns properly.  */
5 
6 void abort (void);
7 
8 union y
9 {
10   int a;
11   unsigned short b;
12 };
13 
14 void __attribute__ ((noinline))
bar(unsigned short u,union y v)15 bar (unsigned short u, union y v)
16 {
17   if (u != 1)
18     abort ();
19 }
20 
21 void __attribute__ ((noinline))
foo(int check)22 foo (int check)
23 {
24   union y x;
25 
26   if (check != 0)
27     x.b = 1;
28   else
29     x.b = 2;
30   bar (x.b, x);
31 }
32 
33 int
main()34 main ()
35 {
36   foo (1);
37   return 0;
38 }
39