/* PR rtl-optimization/78547 */ /* { dg-do compile { target int128 } } */ /* { dg-options "-Os -g -freorder-blocks-algorithm=simple -Wno-psabi" } */ /* { dg-additional-options "-mstringop-strategy=libcall" { target i?86-*-* x86_64-*-* } } */ typedef unsigned __int128 u128; typedef unsigned __int128 V __attribute__ ((vector_size (64))); V foo (u128 a, u128 b, u128 c, V d) { V e = (V) {a}; V f = e & 1; e = 0 != e; c = c; f = f << ((V) {c} & 7); return f + e; }