Hi, The code generated by this test changed shortly after this test was committed, and we didn't get back to updating the scan-assembler statements to match. Until now.
Tested across assorted power* linux targets. OK for master? Thanks -Will [testsuite] * gcc.target/powerpc/fold-vec-extract-longlong.p8.c: Correct expected insns. diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c index e8aabd0..f8f399b 100644 --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c @@ -3,29 +3,25 @@ /* { dg-do compile { target { powerpc*-*-linux* } } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ /* { dg-options "-mdejagnu-cpu=power8 -O2" } */ -// targeting P8, both LE and BE. six tests. +// Targeting P8LE and P8BE, six tests total. // P8 (LE) constants: mfvsrd -// P8 (LE) variables: xori, rldic, mtvsrd, xxpermdi, vslo, mfvsrd -// P8 (BE) constants: xxpermdi, mfvsrd -// P8 (BE) Variables: rldic, mtvsrd, xxpermdi, vslo, mfvsrd +// P8 (LE) variables: addi,xxpermdi,mr,stxvd2x|sxxvd4x,rldicl,sldi,ldx,blr +// P8 (BE) constants: mfvsrd +// P8 (BE) Variables: addi,xxpermdi,rldicl,mr,stxvd2x|stxvd4x,sldi,ldx,blr -/* results. */ -/* { dg-final { scan-assembler-times {\mxori\M} 3 { target le } } } */ -/* { dg-final { scan-assembler-times {\mrldic\M|\mrlwinm\M} 3 } } */ +/* { dg-final { scan-assembler-times {\mrldicl\M|\mrldic\M|\mrlwinm\M} 3 } } */ +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvw4x\M} 3 { target lp64 } } } */ /* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvw4x\M} 4 { target ilp32 } } } */ /* { dg-final { scan-assembler-times {\madd\M} 3 { target ilp32 } } } */ /* { dg-final { scan-assembler-times {\mlwz\M} 11 { target ilp32 } } } */ /* { dg-final { scan-assembler-times {\maddi\M} 6 { target ilp32 } } } */ -/* { dg-final { scan-assembler-times {\mmfvsrd\M} 6 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\mmtvsrd\M} 3 { target lp64 } } } */ +/* { dg-final { scan-assembler-times {\mmfvsrd\M} 3 { target lp64 } } } */ /* { dg-final { scan-assembler-times {\mxxpermdi\M} 3 { target le } } } */ -/* { dg-final { scan-assembler-times {\mxxpermdi\M} 6 { target { be && lp64 } } } } */ /* { dg-final { scan-assembler-times {\mxxpermdi\M} 2 { target { be && ilp32 } } } } */ -/* { dg-final { scan-assembler-times {\mvslo\M} 3 { target lp64 } } } */ #include <altivec.h> unsigned long long testbl_var (vector bool long long vbl2, signed int si)