https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90545
Bug ID: 90545 Summary: [10 regression] gcc.target/powerpc/fold-vec-splats-floatdouble.c fails starting with r271022 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- This happens on just power 9. spawn -ignore SIGHUP /home3/seurer/gcc/build/gcc-test/gcc/xgcc -B/home3/seurer/gcc/build/gcc-test/gcc/ /home/seurer/gcc/gcc-test/gcc/testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -mvsx -O1 -ffat-lto-objects -fno-ident -S -o fold-vec-splats-floatdouble.s PASS: gcc.target/powerpc/fold-vec-splats-floatdouble.c (test for excess errors) gcc.target/powerpc/fold-vec-splats-floatdouble.c: xxpermdi found 0 times FAIL: gcc.target/powerpc/fold-vec-splats-floatdouble.c scan-assembler-times xxpermdi 1 PASS: gcc.target/powerpc/fold-vec-splats-floatdouble.c scan-assembler-times \\mxscvdpspn?\\M 1 PASS: gcc.target/powerpc/fold-vec-splats-floatdouble.c scan-assembler-times \\mvspltw\\M|\\mxxspltw\\M 1 test1f before r271022: test1f: .LFB1: .cfi_startproc xxpermdi 34,1,1,0 blr After r271022: test1f: .LFB1: .cfi_startproc mfvsrd 9,1 mtvsrdd 34,9,9 blr gcc.target/powerpc/fold-vec-splats-floatdouble.c: /* Verify that overloaded built-ins for vec_splat with float and double inputs for VSX produce the right code. */ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_vsx_ok } */ /* { dg-options "-mvsx -O1" } */ #include <altivec.h> vector float test1d (float x) { return vec_splats (x); } vector double test1f (double x) { return vec_splats (x); } // float test generates the permute instruction. /* { dg-final { scan-assembler-times "xxpermdi" 1 } } */ // double test generates a convert (double to single non-signalling) followed by a splat. /* { dg-final { scan-assembler-times {\mxscvdpspn?\M} 1 } } */ /* { dg-final { scan-assembler-times {\mvspltw\M|\mxxspltw\M} 1 } } */