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)16foo (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()27main () 28 { 29 F x = (F) foo ((E) { 3 }, 5); 30 if (x != 3) 31 __builtin_abort (); 32 return 0; 33 } 34