@@ -18,4 +18,4 @@ void h ()
/* { dg-final { scan-assembler "@(PLT|plt)" { target i?86-*-* x86_64-*-* } } } */
/* { dg-final { scan-assembler "@(PLT|plt)" { target { powerpc*-*-linux* && ilp32 } } } } */
-/* { dg-final { scan-assembler "bl f\n\\s*nop" { target { powerpc*-*-linux* && lp64 } } } } */
+/* { dg-final { scan-assembler {bl f(\n\s*nop|@notoc\n)} { target { powerpc*-*-linux* && lp64 } } } } */
@@ -25,6 +25,6 @@ main1 (void)
with no word loads (lw, lwu, lwz, lwzu, or their indexed forms)
or word stores (stw, stwu, stwx, stwux, or their indexed forms). */
-/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv)" } } */
+/* { dg-final { scan-assembler "\t(lvx|p?lxv|lvsr|p?stxv)" } } */
/* { dg-final { scan-assembler-not "\tlwz?u?x? " { xfail { powerpc-ibm-aix* } } } } */
/* { dg-final { scan-assembler-not "\tstwu?x? " } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char);
BUILD_CST_TEST( test12, vector unsigned char, 8, vector unsigned char);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector double, signed long long, vector double);
BUILD_VAR_TEST( test5, vector double, signed int, vector double);
BUILD_CST_TEST( test6, vector double, 12, vector double);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector float, signed long long, vector float);
BUILD_VAR_TEST( test5, vector float, signed int, vector float);
BUILD_CST_TEST( test6, vector float, 12, vector float);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int);
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector uns
BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long);
BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigne
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short);
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,5 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char);
BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
-
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4, vector double, int, vector double);
BUILD_VAR_TEST( test5, vector double, long long, vector double);
BUILD_CST_TEST( test6, vector double, 12, vector double);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test5, vector float, signed long long, vector float);
BUILD_VAR_TEST( test7, vector float, signed int, vector float);
BUILD_CST_TEST( test8, vector float, 12, vector float);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int);
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector uns
BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long);
BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigne
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short);
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, unsigned char);
BUILD_VAR_TEST( test11, vector unsigned char, signed int, unsigned char);
BUILD_CST_TEST( test12, vector unsigned char, 12, unsigned char);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector double, signed long long, double);
BUILD_VAR_TEST( test5, vector double, signed int, double);
BUILD_CST_TEST( test6, vector double, 12, double);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4, vector float, signed long long, vector float);
BUILD_VAR_TEST( test5, vector float, signed int, vector float);
BUILD_CST_TEST( test6, vector float, 12, vector float);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int);
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector uns
BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long);
BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long);
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigne
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short);
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short);
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
@@ -21,7 +21,7 @@ vector double test_dc ()
{ const vector double y = { 3.0, 5.0 }; return vec_splat (y, 0b00010); }
/* If the source vector is a known constant, we will generate a load. */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 2 } } */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mp?lxv\M} 2 } } */
/* For float types, we generate a splat. */
/* { dg-final { scan-assembler-times "vspltw|xxspltw" 3 } } */
@@ -25,7 +25,7 @@ vector signed long long test_sll () { const vector signed long long y = {34, 45}
vector unsigned long long test_ull () { const vector unsigned long long y = {56, 67}; return vec_splat (y, 0b00010); }
/* Assorted load instructions for the initialization with known constants. */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 3 } } */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mp?lxv\M} 3 } } */
/* xxpermdi for vec_splat of long long vectors.
At the time of this writing, the number of xxpermdi instructions
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector double, signed long long, double );
BUILD_VAR_TEST( test5, vector double, signed int, double );
BUILD_CST_TEST( test6, vector double, 12, double );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector float, signed long long, vector float );
BUILD_VAR_TEST( test5, vector float, signed int, vector float );
BUILD_CST_TEST( test6, vector float, 12, vector float );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7, vector double, signed long long, vector double );
BUILD_VAR_TEST( test8, vector double, signed int, vector double );
BUILD_CST_TEST( test9, vector double, 12, vector double );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7, vector float, signed long long, vector float );
BUILD_VAR_TEST( test8, vector float, signed int, vector float );
BUILD_CST_TEST( test9, vector float, 12, vector float );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7, vector double, signed long long, vector double );
BUILD_VAR_TEST( test8, vector double, signed int, vector double );
BUILD_CST_TEST( test9, vector double, 12, vector double );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7, vector float, signed long long, vector float );
BUILD_VAR_TEST( test8, vector float, signed int, vector float );
BUILD_CST_TEST( test9, vector float, 12, vector float );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long );
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
@@ -1,12 +1,12 @@
/* Test expected code generation for lvsl and lvsr on little endian.
- Note that lvsl and lvsr are each produced once, but the filename
- causes them to appear twice in the file. */
+ Note that \s is used in the lvsl/lvsr matches so we don't match
+ on '.file "lvsl-lvsr.c"'. */
/* { dg-do compile { target { powerpc64le-*-* } } } */
/* { dg-options "-O0 -Wno-deprecated" } */
-/* { dg-final { scan-assembler-times "lvsl" 2 } } */
-/* { dg-final { scan-assembler-times "lvsr" 2 } } */
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 2 } } */
+/* { dg-final { scan-assembler-times {\slvsl\s} 1 } } */
+/* { dg-final { scan-assembler-times {\slvsr\s} 1 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mp?lxv\M} 2 } } */
/* { dg-final { scan-assembler-times {\m(?:v|xx)permr?\M} 2 } } */
@@ -7,4 +7,4 @@ int foo(int x)
return x == 0;
}
-/* { dg-final { scan-assembler "cntlzw|isel" } } */
+/* { dg-final { scan-assembler {\mcntlzw\M|\misel\M|\msetbc\M} } } */
@@ -2,9 +2,11 @@
/* { dg-do compile } */
/* { dg-options "-O2 -mno-isel" } */
-/* { dg-final { scan-assembler-times "addic" 4 } } */
-/* { dg-final { scan-assembler-times "subfe" 1 } } */
-/* { dg-final { scan-assembler-times "addze" 3 } } */
+/* { dg-final { scan-assembler-times {\maddic\M} 4 { target { ! has_arch_pwr10 } } } } */
+/* { dg-final { scan-assembler-times {\msubfe\M} 1 { target { ! has_arch_pwr10 } } } } */
+/* { dg-final { scan-assembler-times {\maddic\M} 3 { target { has_arch_pwr10 } } } } */
+/* { dg-final { scan-assembler-times {\msetbcr\M} 1 { target { has_arch_pwr10 } } } } */
+/* { dg-final { scan-assembler-times {\maddze\M} 3 } } */
long ne0(long a)
{
@@ -30,5 +30,5 @@ vector signed long long splats4(void)
/* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
/* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M} 2 } } */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mp?lxv\M|\mlxvd2x\M} 2 } } */
@@ -6127,6 +6127,16 @@ proc check_effective_target_has_arch_pwr9 { } {
}]
}
+proc check_effective_target_has_arch_pwr10 { } {
+ return [check_no_compiler_messages arch_pwr10 assembly {
+ #ifndef _ARCH_PWR10
+ #error does not have power10 support.
+ #else
+ /* "has power10 support" */
+ #endif
+ }]
+}
+
# Return 1 if this is a PowerPC target supporting -mcpu=power10.
# Limit this to 64-bit linux systems for now until other targets support
# power10.