1 /* PR rtl-optimization/99863 */
2 /* { dg-do run } */
3 /* { dg-options "-O -fno-tree-forwprop -mno-sse2 -Wno-psabi" } */
4 
5 typedef unsigned char __attribute__((__vector_size__ (8))) A;
6 typedef unsigned char __attribute__((__vector_size__ (32))) B;
7 typedef unsigned char __attribute__((__vector_size__ (64))) C;
8 typedef unsigned int __attribute__((__vector_size__ (32))) D;
9 typedef unsigned int __attribute__((__vector_size__ (64))) E;
10 typedef unsigned long long F;
11 
12 D a;
13 A b;
14 
15 A
foo(E x,F y)16 foo (E x, F y)
17 {
18   D c = (y <= 0) * a;
19   x *= (0 < y);
20   C d = (C) x;
21   B e = ((union { C a; B b[2];}) d).b[0] + (B) c;
22   A f = ((union { B a; A b[4];}) e).b[0] + (A) b;
23   return f;
24 }
25 
26 int
main()27 main ()
28 {
29   F x = (F) foo ((E) { 3 }, 5);
30   if (x != 3)
31     __builtin_abort ();
32   return 0;
33 }
34