/* { dg-do compile } */ /* { dg-require-effective-target int128 } */ /* { dg-require-effective-target float128 } */ /* { dg-options "-O2 -mdejagnu-cpu=power8" } */ typedef __vector unsigned __int128 vui128_t; typedef union { __float128 vf1; vui128_t vx1; } __VF_128; vui128_t vec_xfer_bin128_2_vui128t (__float128 f128) { __VF_128 vunion; vunion.vf1 = f128; return (vunion.vx1); } /* { dg-final { scan-assembler-not {\mxxpermdi\M} } } */ /* { dg-final { scan-assembler-not {\mstxvd2x\M} } } */ /* { dg-final { scan-assembler-not {\mlxvd2x\M} } } */