diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386')
24 files changed, 205 insertions, 84 deletions
diff --git a/gcc/testsuite/gcc.target/i386/addr-space-1.c b/gcc/testsuite/gcc.target/i386/addr-space-1.c index 1e13147..9a5ce9c 100644 --- a/gcc/testsuite/gcc.target/i386/addr-space-1.c +++ b/gcc/testsuite/gcc.target/i386/addr-space-1.c @@ -1,4 +1,4 @@ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2" } */ /* { dg-final { scan-assembler "movl\[ \t\]%gs:\\((%eax|%rax)\\), %eax" } } */ diff --git a/gcc/testsuite/gcc.target/i386/apx-nf-pr119539.c b/gcc/testsuite/gcc.target/i386/apx-nf-pr119539.c new file mode 100644 index 0000000..5dfec55 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/apx-nf-pr119539.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-mapx-features=nf -march=x86-64 -O2" } */ +/* { dg-final { scan-assembler-times "\{nf\} rol" 2 } } */ + +long int f1 (int x) { return ~(1ULL << (x & 0x3f)); } +long int f2 (char x) { return ~(1ULL << (x & 0x3f)); } diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-convert-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-convert-1.c index e932362..ff103d0 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-convert-1.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-convert-1.c @@ -86,9 +86,9 @@ avx10_2_vcvtbiasph2bf8_test (void) void extern avx10_2_vcvtbiasph2bf8s_test (void) { - x256i = _mm512_cvtbiassph_bf8 (x512i, x512h); - x256i = _mm512_mask_cvtbiassph_bf8 (x256i, m32, x512i, x512h); - x256i = _mm512_maskz_cvtbiassph_bf8 (m32, x512i, x512h); + x256i = _mm512_cvts_biasph_bf8 (x512i, x512h); + x256i = _mm512_mask_cvts_biasph_bf8 (x256i, m32, x512i, x512h); + x256i = _mm512_maskz_cvts_biasph_bf8 (m32, x512i, x512h); } void extern @@ -102,9 +102,9 @@ avx10_2_vcvtbiasph2hf8_test (void) void extern avx10_2_vcvtbiasph2hf8s_test (void) { - x256i = _mm512_cvtbiassph_hf8 (x512i, x512h); - x256i = _mm512_mask_cvtbiassph_hf8 (x256i, m32, x512i, x512h); - x256i = _mm512_maskz_cvtbiassph_hf8 (m32, x512i, x512h); + x256i = _mm512_cvts_biasph_hf8 (x512i, x512h); + x256i = _mm512_mask_cvts_biasph_hf8 (x256i, m32, x512i, x512h); + x256i = _mm512_maskz_cvts_biasph_hf8 (m32, x512i, x512h); } void extern @@ -118,9 +118,9 @@ avx10_2_vcvt2ph2bf8_test (void) void extern avx10_2_vcvt2ph2bf8s_test (void) { - x512i = _mm512_cvts2ph_bf8 (x512h, x512h); - x512i = _mm512_mask_cvts2ph_bf8 (x512i, m64, x512h, x512h); - x512i = _mm512_maskz_cvts2ph_bf8 (m64, x512h, x512h); + x512i = _mm512_cvts_2ph_bf8 (x512h, x512h); + x512i = _mm512_mask_cvts_2ph_bf8 (x512i, m64, x512h, x512h); + x512i = _mm512_maskz_cvts_2ph_bf8 (m64, x512h, x512h); } void extern @@ -134,9 +134,9 @@ avx10_2_vcvt2ph2hf8_test (void) void extern avx10_2_vcvt2ph2hf8s_test (void) { - x512i = _mm512_cvts2ph_hf8 (x512h, x512h); - x512i = _mm512_mask_cvts2ph_hf8 (x512i, m64, x512h, x512h); - x512i = _mm512_maskz_cvts2ph_hf8 (m64, x512h, x512h); + x512i = _mm512_cvts_2ph_hf8 (x512h, x512h); + x512i = _mm512_mask_cvts_2ph_hf8 (x512i, m64, x512h, x512h); + x512i = _mm512_maskz_cvts_2ph_hf8 (m64, x512h, x512h); } void extern @@ -158,9 +158,9 @@ avx10_2_vcvtph2bf8_test (void) void extern avx10_2_vcvtph2bf8s_test (void) { - x256i = _mm512_cvtsph_bf8 (x512h); - x256i = _mm512_mask_cvtsph_bf8 (x256i, m32, x512h); - x256i = _mm512_maskz_cvtsph_bf8 (m32, x512h); + x256i = _mm512_cvts_ph_bf8 (x512h); + x256i = _mm512_mask_cvts_ph_bf8 (x256i, m32, x512h); + x256i = _mm512_maskz_cvts_ph_bf8 (m32, x512h); } void extern @@ -174,9 +174,9 @@ avx10_2_vcvtph2hf8_test (void) void extern avx10_2_vcvtph2hf8s_test (void) { - x256i = _mm512_cvtsph_hf8 (x512h); - x256i = _mm512_mask_cvtsph_hf8 (x256i, m32, x512h); - x256i = _mm512_maskz_cvtsph_hf8 (m32, x512h); + x256i = _mm512_cvts_ph_hf8 (x512h); + x256i = _mm512_mask_cvts_ph_hf8 (x256i, m32, x512h); + x256i = _mm512_maskz_cvts_ph_hf8 (m32, x512h); } void extern diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8s-2.c index aa8545c..33d9c0c 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2bf8s-2.c @@ -64,16 +64,16 @@ TEST (void) CALC(res_ref, src1.a, src2.a); - res1.x = INTRINSIC (_cvts2ph_bf8) (src1.x, src2.x); + res1.x = INTRINSIC (_cvts_2ph_bf8) (src1.x, src2.x); if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvts2ph_bf8) (res2.x, mask, src1.x, src2.x); + res2.x = INTRINSIC (_mask_cvts_2ph_bf8) (res2.x, mask, src1.x, src2.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvts2ph_bf8) (mask, src1.x, src2.x); + res3.x = INTRINSIC (_maskz_cvts_2ph_bf8) (mask, src1.x, src2.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8s-2.c index afed1d1..b9fdfac 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvt2ph2hf8s-2.c @@ -64,16 +64,16 @@ TEST (void) CALC(res_ref, src1.a, src2.a); - res1.x = INTRINSIC (_cvts2ph_hf8) (src1.x, src2.x); + res1.x = INTRINSIC (_cvts_2ph_hf8) (src1.x, src2.x); if (UNION_CHECK (AVX512F_LEN, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvts2ph_hf8) (res2.x, mask, src1.x, src2.x); + res2.x = INTRINSIC (_mask_cvts_2ph_hf8) (res2.x, mask, src1.x, src2.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvts2ph_hf8) (mask, src1.x, src2.x); + res3.x = INTRINSIC (_maskz_cvts_2ph_hf8) (mask, src1.x, src2.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8s-2.c index 88ced07..93de7ea 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2bf8s-2.c @@ -61,16 +61,16 @@ TEST (void) CALC (res_ref, src1.a, src2.a); - res1.x = INTRINSIC (_cvtbiassph_bf8) (src1.x, src2.x); + res1.x = INTRINSIC (_cvts_biasph_bf8) (src1.x, src2.x); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvtbiassph_bf8) (res2.x, mask, src1.x, src2.x); + res2.x = INTRINSIC (_mask_cvts_biasph_bf8) (res2.x, mask, src1.x, src2.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvtbiassph_bf8) (mask, src1.x, src2.x); + res3.x = INTRINSIC (_maskz_cvts_biasph_bf8) (mask, src1.x, src2.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8s-2.c index 1a8b4d6..0333f08 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtbiasph2hf8s-2.c @@ -60,16 +60,16 @@ TEST (void) CALC (res_ref, src1.a, src2.a); - res1.x = INTRINSIC (_cvtbiassph_hf8) (src1.x, src2.x); + res1.x = INTRINSIC (_cvts_biasph_hf8) (src1.x, src2.x); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvtbiassph_hf8) (res2.x, mask, src1.x, src2.x); + res2.x = INTRINSIC (_mask_cvts_biasph_hf8) (res2.x, mask, src1.x, src2.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvtbiassph_hf8) (mask, src1.x, src2.x); + res3.x = INTRINSIC (_maskz_cvts_biasph_hf8) (mask, src1.x, src2.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8s-2.c index f4853ce..c22e1aa 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2bf8s-2.c @@ -60,16 +60,16 @@ TEST (void) CALC(res_ref, src.a); - res1.x = INTRINSIC (_cvtsph_bf8) (src.x); + res1.x = INTRINSIC (_cvts_ph_bf8) (src.x); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvtsph_bf8) (res2.x, mask, src.x); + res2.x = INTRINSIC (_mask_cvts_ph_bf8) (res2.x, mask, src.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvtsph_bf8) (mask, src.x); + res3.x = INTRINSIC (_maskz_cvts_ph_bf8) (mask, src.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8s-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8s-2.c index 43610bf..e6872e8 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8s-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2hf8s-2.c @@ -60,16 +60,16 @@ TEST (void) CALC(res_ref, src.a); - res1.x = INTRINSIC (_cvtsph_hf8) (src.x); + res1.x = INTRINSIC (_cvts_ph_hf8) (src.x); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res1, res_ref)) abort (); - res2.x = INTRINSIC (_mask_cvtsph_hf8) (res2.x, mask, src.x); + res2.x = INTRINSIC (_mask_cvts_ph_hf8) (res2.x, mask, src.x); MASK_MERGE (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res2, res_ref)) abort (); - res3.x = INTRINSIC (_maskz_cvtsph_hf8) (mask, src.x); + res3.x = INTRINSIC (_maskz_cvts_ph_hf8) (mask, src.x); MASK_ZERO (i_b) (res_ref, mask, SIZE); if (UNION_CHECK (AVX512F_LEN_HALF, i_b) (res3, res_ref)) abort (); diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c index 62791d0..3d5e921 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c @@ -138,13 +138,13 @@ avx10_2_vcvtbiasph2bf8_test (void) void extern avx10_2_vcvtbiasph2bf8s_test (void) { - x128i = _mm_cvtbiassph_bf8 (x128i, x128h); - x128i = _mm_mask_cvtbiassph_bf8 (x128i, m8, x128i, x128h); - x128i = _mm_maskz_cvtbiassph_bf8 (m8, x128i, x128h); + x128i = _mm_cvts_biasph_bf8 (x128i, x128h); + x128i = _mm_mask_cvts_biasph_bf8 (x128i, m8, x128i, x128h); + x128i = _mm_maskz_cvts_biasph_bf8 (m8, x128i, x128h); - x128i = _mm256_cvtbiassph_bf8 (x256i, x256h); - x128i = _mm256_mask_cvtbiassph_bf8 (x128i, m16, x256i, x256h); - x128i = _mm256_maskz_cvtbiassph_bf8 (m16, x256i, x256h); + x128i = _mm256_cvts_biasph_bf8 (x256i, x256h); + x128i = _mm256_mask_cvts_biasph_bf8 (x128i, m16, x256i, x256h); + x128i = _mm256_maskz_cvts_biasph_bf8 (m16, x256i, x256h); } void extern @@ -162,13 +162,13 @@ avx10_2_vcvtbiasph2hf8_test (void) void extern avx10_2_vcvtbiasph2hf8s_test (void) { - x128i = _mm_cvtbiassph_hf8 (x128i, x128h); - x128i = _mm_mask_cvtbiassph_hf8 (x128i, m8, x128i, x128h); - x128i = _mm_maskz_cvtbiassph_hf8 (m8, x128i, x128h); + x128i = _mm_cvts_biasph_hf8 (x128i, x128h); + x128i = _mm_mask_cvts_biasph_hf8 (x128i, m8, x128i, x128h); + x128i = _mm_maskz_cvts_biasph_hf8 (m8, x128i, x128h); - x128i = _mm256_cvtbiassph_hf8 (x256i, x256h); - x128i = _mm256_mask_cvtbiassph_hf8 (x128i, m16, x256i, x256h); - x128i = _mm256_maskz_cvtbiassph_hf8 (m16, x256i, x256h); + x128i = _mm256_cvts_biasph_hf8 (x256i, x256h); + x128i = _mm256_mask_cvts_biasph_hf8 (x128i, m16, x256i, x256h); + x128i = _mm256_maskz_cvts_biasph_hf8 (m16, x256i, x256h); } void extern @@ -185,12 +185,12 @@ avx10_2_vcvt2ph2bf8_test (void) void extern avx10_2_vcvt2ph2bf8s_test (void) { - x128i = _mm_cvts2ph_bf8 (x128h, x128h); - x128i = _mm_mask_cvts2ph_bf8 (x128i, m16, x128h, x128h); - x128i = _mm_maskz_cvts2ph_bf8 (m16, x128h, x128h); - x256i = _mm256_cvts2ph_bf8 (x256h, x256h); - x256i = _mm256_mask_cvts2ph_bf8 (x256i, m32, x256h, x256h); - x256i = _mm256_maskz_cvts2ph_bf8 (m32, x256h, x256h); + x128i = _mm_cvts_2ph_bf8 (x128h, x128h); + x128i = _mm_mask_cvts_2ph_bf8 (x128i, m16, x128h, x128h); + x128i = _mm_maskz_cvts_2ph_bf8 (m16, x128h, x128h); + x256i = _mm256_cvts_2ph_bf8 (x256h, x256h); + x256i = _mm256_mask_cvts_2ph_bf8 (x256i, m32, x256h, x256h); + x256i = _mm256_maskz_cvts_2ph_bf8 (m32, x256h, x256h); } void extern @@ -207,12 +207,12 @@ avx10_2_vcvt2ph2hf8_test (void) void extern avx10_2_vcvt2ph2hf8s_test (void) { - x128i = _mm_cvts2ph_hf8 (x128h, x128h); - x128i = _mm_mask_cvts2ph_hf8 (x128i, m16, x128h, x128h); - x128i = _mm_maskz_cvts2ph_hf8 (m16, x128h, x128h); - x256i = _mm256_cvts2ph_hf8 (x256h, x256h); - x256i = _mm256_mask_cvts2ph_hf8 (x256i, m32, x256h, x256h); - x256i = _mm256_maskz_cvts2ph_hf8 (m32, x256h, x256h); + x128i = _mm_cvts_2ph_hf8 (x128h, x128h); + x128i = _mm_mask_cvts_2ph_hf8 (x128i, m16, x128h, x128h); + x128i = _mm_maskz_cvts_2ph_hf8 (m16, x128h, x128h); + x256i = _mm256_cvts_2ph_hf8 (x256h, x256h); + x256i = _mm256_mask_cvts_2ph_hf8 (x256i, m32, x256h, x256h); + x256i = _mm256_maskz_cvts_2ph_hf8 (m32, x256h, x256h); } void extern @@ -242,13 +242,13 @@ avx10_2_vcvtph2bf8_test (void) void extern avx10_2_vcvtph2bf8s_test (void) { - x128i = _mm_cvtsph_bf8 (x128h); - x128i = _mm_mask_cvtsph_bf8 (x128i, m8, x128h); - x128i = _mm_maskz_cvtsph_bf8 (m8, x128h); + x128i = _mm_cvts_ph_bf8 (x128h); + x128i = _mm_mask_cvts_ph_bf8 (x128i, m8, x128h); + x128i = _mm_maskz_cvts_ph_bf8 (m8, x128h); - x128i = _mm256_cvtsph_bf8 (x256h); - x128i = _mm256_mask_cvtsph_bf8 (x128i, m16, x256h); - x128i = _mm256_maskz_cvtsph_bf8 (m16, x256h); + x128i = _mm256_cvts_ph_bf8 (x256h); + x128i = _mm256_mask_cvts_ph_bf8 (x128i, m16, x256h); + x128i = _mm256_maskz_cvts_ph_bf8 (m16, x256h); } void extern @@ -266,13 +266,13 @@ avx10_2_vcvtph2hf8_test (void) void extern avx10_2_vcvtph2hf8s_test (void) { - x128i = _mm_cvtsph_hf8 (x128h); - x128i = _mm_mask_cvtsph_hf8 (x128i, m8, x128h); - x128i = _mm_maskz_cvtsph_hf8 (m8, x128h); + x128i = _mm_cvts_ph_hf8 (x128h); + x128i = _mm_mask_cvts_ph_hf8 (x128i, m8, x128h); + x128i = _mm_maskz_cvts_ph_hf8 (m8, x128h); - x128i = _mm256_cvtsph_hf8 (x256h); - x128i = _mm256_mask_cvtsph_hf8 (x128i, m16, x256h); - x128i = _mm256_maskz_cvtsph_hf8 (m16, x256h); + x128i = _mm256_cvts_ph_hf8 (x256h); + x128i = _mm256_mask_cvts_ph_hf8 (x128i, m16, x256h); + x128i = _mm256_maskz_cvts_ph_hf8 (m16, x256h); } void extern diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c index a96007d..9b08f5a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-1b.c @@ -1,4 +1,4 @@ -/* { dg-do run {target avx512fp16} } */ +/* { dg-do run { target avx512fp16 } } */ /* { dg-options "-O2 -mavx512fp16" } */ static void do_test (void); diff --git a/gcc/testsuite/gcc.target/i386/pr111673.c b/gcc/testsuite/gcc.target/i386/pr111673.c index b9ceacf..0f08ba89 100644 --- a/gcc/testsuite/gcc.target/i386/pr111673.c +++ b/gcc/testsuite/gcc.target/i386/pr111673.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue" } */ +/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr115910.c b/gcc/testsuite/gcc.target/i386/pr115910.c new file mode 100644 index 0000000..5f1cd9a --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr115910.c @@ -0,0 +1,20 @@ +/* PR target/115910 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O2 -march=x86-64 -mtune=generic -masm=att" } */ +/* { dg-final { scan-assembler-times {\timulq\t} 2 } } */ +/* { dg-final { scan-assembler-times {\tshrq\t\$33,} 2 } } */ +/* { dg-final { scan-assembler-not {\tsarl\t} } } */ + +int +foo (int x) +{ + if (x < 0) + __builtin_unreachable (); + return x / 3U; +} + +int +bar (int x) +{ + return x / 3U; +} diff --git a/gcc/testsuite/gcc.target/i386/pr117946.c b/gcc/testsuite/gcc.target/i386/pr117946.c index c4bf825..b46921c 100644 --- a/gcc/testsuite/gcc.target/i386/pr117946.c +++ b/gcc/testsuite/gcc.target/i386/pr117946.c @@ -1,4 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ +/* { dg-require-effective-target dfp } */ /* { dg-options "-O -favoid-store-forwarding -mavx10.1 -mprefer-avx128 --param=store-forwarding-max-distance=128 -Wno-psabi" } */ /* { dg-warning "'-mavx10.1' is aliased to 512 bit since GCC14.3 and GCC15.1 while '-mavx10.1-256' and '-mavx10.1-512' will be deprecated in GCC 16 due to all machines 512 bit vector size supported" "" { target *-*-* } 0 } */ typedef __attribute__((__vector_size__ (64))) _Decimal32 V; diff --git a/gcc/testsuite/gcc.target/i386/pr118017.c b/gcc/testsuite/gcc.target/i386/pr118017.c index 28797a0..831ec6e 100644 --- a/gcc/testsuite/gcc.target/i386/pr118017.c +++ b/gcc/testsuite/gcc.target/i386/pr118017.c @@ -1,5 +1,7 @@ /* PR target/118017 */ -/* { dg-do compile { target int128 } } */ +/* { dg-do compile } */ +/* { dg-require-effective-target int128 } */ +/* { dg-require-effective-target dfp } */ /* { dg-options "-Og -frounding-math -mno-80387 -mno-mmx -Wno-psabi" } */ typedef __attribute__((__vector_size__ (64))) _Float128 F; diff --git a/gcc/testsuite/gcc.target/i386/pr119425.c b/gcc/testsuite/gcc.target/i386/pr119425.c new file mode 100644 index 0000000..b926979 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr119425.c @@ -0,0 +1,37 @@ +/* PR target/119425 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-Os -fno-vect-cost-model -ftree-slp-vectorize -mavxneconvert -mapxf" } */ +extern long K512[]; +extern long sha512_block_data_order_ctx[]; + +#define Ch(x, y, z) ~x &z +#define ROUND_00_15(i, a, b, c, d, e, f, g, h) \ + T1 += ~e & g + K512[i]; \ +h = 0; \ +d += h += T1 +#define ROUND_16_80(i, j, a, b, c, d, e, f, g, h, X) \ + ROUND_00_15(i + j, , , , d, e, , g, h) + +unsigned sha512_block_data_order_f, sha512_block_data_order_g; + +void +sha512_block_data_order() +{ + unsigned a, b, c, d, e, h, T1; + int i = 6; + for (; i < 80; i += 6) { + ROUND_16_80(i, 0, , , , d, e, , , h, ); + ROUND_16_80(i, 11, , , , a, b, , d, e, ); + ROUND_16_80(i, 12, , , , h, a, , c, d, ); + ROUND_16_80(i, 13, , , , sha512_block_data_order_g, h, , b, c, ); + ROUND_16_80(i, 14, , , , sha512_block_data_order_f, + sha512_block_data_order_g, , a, b, ); + ROUND_16_80(i, 15, , , , e, sha512_block_data_order_f, , , a, ); + + } + sha512_block_data_order_ctx[0] += a; + sha512_block_data_order_ctx[1] += b; + sha512_block_data_order_ctx[2] += c; + sha512_block_data_order_ctx[3] += d; + +} diff --git a/gcc/testsuite/gcc.target/i386/pr119450.c b/gcc/testsuite/gcc.target/i386/pr119450.c new file mode 100644 index 0000000..fa4bbda --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr119450.c @@ -0,0 +1,15 @@ +/* PR target/119450 */ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ + +long *a; +int b; + +void +foo (void) +{ + unsigned d = b >> 30; + a = (long *) (__UINTPTR_TYPE__) d; + if (*a & 1 << 30) + *a = 0; +} diff --git a/gcc/testsuite/gcc.target/i386/pr119473.c b/gcc/testsuite/gcc.target/i386/pr119473.c new file mode 100644 index 0000000..574c921 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr119473.c @@ -0,0 +1,26 @@ +/* PR target/119473 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O2 -mapxf -m64 -mvaes" } */ + +typedef char __v32qi __attribute__ ((__vector_size__(32))); +typedef long long __m256i __attribute__((__vector_size__(32), __aligned__(32))); + +typedef union +{ + __v32qi qi[8]; +} tmp_u; + + +void foo () +{ + register tmp_u *tdst __asm__("%rdx"); + register tmp_u *src1 __asm__("%rcx"); + register tmp_u *src2 __asm__("%r26"); + + tdst->qi[0] = __builtin_ia32_vaesdec_v32qi(src1->qi[0], src2->qi[0]); + tdst->qi[0] = __builtin_ia32_vaesdeclast_v32qi(src1->qi[0], src2->qi[0]); + tdst->qi[0] = __builtin_ia32_vaesenc_v32qi(src1->qi[0], src2->qi[0]); + tdst->qi[0] = __builtin_ia32_vaesenclast_v32qi(src1->qi[0], src2->qi[0]); +} + +/* { dg-final { scan-assembler-not "\\\(%r26\\\), " } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr119549.c b/gcc/testsuite/gcc.target/i386/pr119549.c new file mode 100644 index 0000000..a465bec --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr119549.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-msse4" } */ + +typedef long long v2di __attribute__((vector_size(16))); + +static inline __attribute__((always_inline)) +int rte_trace_feature_is_enabled() { return 1; } /* { dg-error "inlining failed" } */ + +void __attribute__((target ("no-sse3"))) __attribute__((target ("no-sse4"))) +rte_eal_trace_generic_void_init(void) +{ + if (!rte_trace_feature_is_enabled()) return; + __asm__ volatile ("" : : : "memory"); +} + diff --git a/gcc/testsuite/gcc.target/i386/pr55583.c b/gcc/testsuite/gcc.target/i386/pr55583.c index ea6a2d5..8773451 100644 --- a/gcc/testsuite/gcc.target/i386/pr55583.c +++ b/gcc/testsuite/gcc.target/i386/pr55583.c @@ -1,9 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O2 -Wno-shift-count-overflow" } */ -/* { dg-final { scan-assembler-times {(?n)shrd[ql]?[\t ]*\$2} 4 { target { ! ia32 } } } } */ -/* { dg-final { scan-assembler-times {(?n)shrdl?[\t ]*\$2} 2 { target ia32 } } } */ -/* { dg-final { scan-assembler-times {(?n)shldl?[\t ]*\$2} 1 { target ia32 } } } */ -/* { dg-final { scan-assembler-times {(?n)shld[ql]?[\t ]*\$2} 2 { target { ! ia32 } } } } */ +/* { dg-additional-options "-mno-sse -mno-mmx" { target ia32 } } */ +/* { dg-final { scan-assembler-times {(?n)shrd[ql]?[\t ]*\$2} 4 } } */ +/* { dg-final { scan-assembler-times {(?n)shld[ql]?[\t ]*\$2} 2 } } */ typedef unsigned long long u64; typedef unsigned int u32; diff --git a/gcc/testsuite/gcc.target/i386/pr82142a.c b/gcc/testsuite/gcc.target/i386/pr82142a.c index a40c038..a536150 100644 --- a/gcc/testsuite/gcc.target/i386/pr82142a.c +++ b/gcc/testsuite/gcc.target/i386/pr82142a.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mno-avx -msse2" } */ +/* { dg-options "-O2 -mno-avx -msse2 -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr82142b.c b/gcc/testsuite/gcc.target/i386/pr82142b.c index b1bf12d..d18b7c4 100644 --- a/gcc/testsuite/gcc.target/i386/pr82142b.c +++ b/gcc/testsuite/gcc.target/i386/pr82142b.c @@ -1,5 +1,5 @@ /* { dg-do compile { target ia32 } } */ -/* { dg-options "-O2 -mno-avx -msse2" } */ +/* { dg-options "-O2 -mno-avx -msse2 -mno-stackrealign -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.} } } */ diff --git a/gcc/testsuite/gcc.target/i386/sse2-float16-5.c b/gcc/testsuite/gcc.target/i386/sse2-float16-5.c index c3ed23b..8207842 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-float16-5.c +++ b/gcc/testsuite/gcc.target/i386/sse2-float16-5.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target ia32} } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2 -mno-sse2" } */ _Float16 a; diff --git a/gcc/testsuite/gcc.target/i386/strub-pr118006.c b/gcc/testsuite/gcc.target/i386/strub-pr118006.c index f116790..88f66c1 100644 --- a/gcc/testsuite/gcc.target/i386/strub-pr118006.c +++ b/gcc/testsuite/gcc.target/i386/strub-pr118006.c @@ -1,5 +1,5 @@ -/* { dg-require-effective-target strub } */ /* { dg-do compile } */ +/* { dg-require-effective-target strub } */ /* { dg-options "-fstrub=all -O2 -mno-accumulate-outgoing-args" } */ __attribute__((noipa)) |