Author: ctopper Date: Sun Jan 6 22:01:58 2019 New Revision: 350506 URL: http://llvm.org/viewvc/llvm-project?rev=350506&view=rev Log: [X86] Update VBMI2 vshld/vshrd tests to use an immediate that doesn't require a modulo.
Planning to replace these with funnel shift intrinsics which would mask out the extra bits. This will help minimize test diffs. Modified: cfe/trunk/test/CodeGen/avx512vbmi2-builtins.c cfe/trunk/test/CodeGen/avx512vlvbmi2-builtins.c Modified: cfe/trunk/test/CodeGen/avx512vbmi2-builtins.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512vbmi2-builtins.c?rev=350506&r1=350505&r2=350506&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/avx512vbmi2-builtins.c (original) +++ cfe/trunk/test/CodeGen/avx512vbmi2-builtins.c Sun Jan 6 22:01:58 2019 @@ -90,7 +90,7 @@ __m512i test_mm512_mask_shldi_epi64(__m5 // CHECK-LABEL: @test_mm512_mask_shldi_epi64 // CHECK: @llvm.x86.avx512.vpshld.q.512 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} - return _mm512_mask_shldi_epi64(__S, __U, __A, __B, 127); + return _mm512_mask_shldi_epi64(__S, __U, __A, __B, 47); } __m512i test_mm512_maskz_shldi_epi64(__mmask8 __U, __m512i __A, __m512i __B) { @@ -110,14 +110,14 @@ __m512i test_mm512_mask_shldi_epi32(__m5 // CHECK-LABEL: @test_mm512_mask_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.512 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} - return _mm512_mask_shldi_epi32(__S, __U, __A, __B, 127); + return _mm512_mask_shldi_epi32(__S, __U, __A, __B, 7); } __m512i test_mm512_maskz_shldi_epi32(__mmask16 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.512 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} - return _mm512_maskz_shldi_epi32(__U, __A, __B, 63); + return _mm512_maskz_shldi_epi32(__U, __A, __B, 15); } __m512i test_mm512_shldi_epi32(__m512i __A, __m512i __B) { @@ -130,27 +130,27 @@ __m512i test_mm512_mask_shldi_epi16(__m5 // CHECK-LABEL: @test_mm512_mask_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.512 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} - return _mm512_mask_shldi_epi16(__S, __U, __A, __B, 127); + return _mm512_mask_shldi_epi16(__S, __U, __A, __B, 3); } __m512i test_mm512_maskz_shldi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.512 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} - return _mm512_maskz_shldi_epi16(__U, __A, __B, 63); + return _mm512_maskz_shldi_epi16(__U, __A, __B, 7); } __m512i test_mm512_shldi_epi16(__m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.512 - return _mm512_shldi_epi16(__A, __B, 31); + return _mm512_shldi_epi16(__A, __B, 15); } __m512i test_mm512_mask_shrdi_epi64(__m512i __S, __mmask8 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_mask_shrdi_epi64 // CHECK: @llvm.x86.avx512.vpshrd.q.512 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} - return _mm512_mask_shrdi_epi64(__S, __U, __A, __B, 127); + return _mm512_mask_shrdi_epi64(__S, __U, __A, __B, 47); } __m512i test_mm512_maskz_shrdi_epi64(__mmask8 __U, __m512i __A, __m512i __B) { @@ -170,14 +170,14 @@ __m512i test_mm512_mask_shrdi_epi32(__m5 // CHECK-LABEL: @test_mm512_mask_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.512 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} - return _mm512_mask_shrdi_epi32(__S, __U, __A, __B, 127); + return _mm512_mask_shrdi_epi32(__S, __U, __A, __B, 7); } __m512i test_mm512_maskz_shrdi_epi32(__mmask16 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.512 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} - return _mm512_maskz_shrdi_epi32(__U, __A, __B, 63); + return _mm512_maskz_shrdi_epi32(__U, __A, __B, 15); } __m512i test_mm512_shrdi_epi32(__m512i __A, __m512i __B) { @@ -190,14 +190,14 @@ __m512i test_mm512_mask_shrdi_epi16(__m5 // CHECK-LABEL: @test_mm512_mask_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.512 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} - return _mm512_mask_shrdi_epi16(__S, __U, __A, __B, 127); + return _mm512_mask_shrdi_epi16(__S, __U, __A, __B, 3); } __m512i test_mm512_maskz_shrdi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.512 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} - return _mm512_maskz_shrdi_epi16(__U, __A, __B, 63); + return _mm512_maskz_shrdi_epi16(__U, __A, __B, 15); } __m512i test_mm512_shrdi_epi16(__m512i __A, __m512i __B) { Modified: cfe/trunk/test/CodeGen/avx512vlvbmi2-builtins.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512vlvbmi2-builtins.c?rev=350506&r1=350505&r2=350506&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/avx512vlvbmi2-builtins.c (original) +++ cfe/trunk/test/CodeGen/avx512vlvbmi2-builtins.c Sun Jan 6 22:01:58 2019 @@ -174,7 +174,7 @@ __m256i test_mm256_mask_shldi_epi64(__m2 // CHECK-LABEL: @test_mm256_mask_shldi_epi64 // CHECK: @llvm.x86.avx512.vpshld.q.256 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} - return _mm256_mask_shldi_epi64(__S, __U, __A, __B, 127); + return _mm256_mask_shldi_epi64(__S, __U, __A, __B, 47); } __m256i test_mm256_maskz_shldi_epi64(__mmask8 __U, __m256i __A, __m256i __B) { @@ -194,7 +194,7 @@ __m128i test_mm_mask_shldi_epi64(__m128i // CHECK-LABEL: @test_mm_mask_shldi_epi64 // CHECK: @llvm.x86.avx512.vpshld.q.128 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} - return _mm_mask_shldi_epi64(__S, __U, __A, __B, 127); + return _mm_mask_shldi_epi64(__S, __U, __A, __B, 47); } __m128i test_mm_maskz_shldi_epi64(__mmask8 __U, __m128i __A, __m128i __B) { @@ -214,14 +214,14 @@ __m256i test_mm256_mask_shldi_epi32(__m2 // CHECK-LABEL: @test_mm256_mask_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.256 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} - return _mm256_mask_shldi_epi32(__S, __U, __A, __B, 127); + return _mm256_mask_shldi_epi32(__S, __U, __A, __B, 7); } __m256i test_mm256_maskz_shldi_epi32(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_maskz_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.256 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} - return _mm256_maskz_shldi_epi32(__U, __A, __B, 63); + return _mm256_maskz_shldi_epi32(__U, __A, __B, 15); } __m256i test_mm256_shldi_epi32(__m256i __A, __m256i __B) { @@ -234,14 +234,14 @@ __m128i test_mm_mask_shldi_epi32(__m128i // CHECK-LABEL: @test_mm_mask_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.128 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} - return _mm_mask_shldi_epi32(__S, __U, __A, __B, 127); + return _mm_mask_shldi_epi32(__S, __U, __A, __B, 7); } __m128i test_mm_maskz_shldi_epi32(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_maskz_shldi_epi32 // CHECK: @llvm.x86.avx512.vpshld.d.128 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} - return _mm_maskz_shldi_epi32(__U, __A, __B, 63); + return _mm_maskz_shldi_epi32(__U, __A, __B, 15); } __m128i test_mm_shldi_epi32(__m128i __A, __m128i __B) { @@ -254,14 +254,14 @@ __m256i test_mm256_mask_shldi_epi16(__m2 // CHECK-LABEL: @test_mm256_mask_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.256 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} - return _mm256_mask_shldi_epi16(__S, __U, __A, __B, 127); + return _mm256_mask_shldi_epi16(__S, __U, __A, __B, 3); } __m256i test_mm256_maskz_shldi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_maskz_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.256 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} - return _mm256_maskz_shldi_epi16(__U, __A, __B, 63); + return _mm256_maskz_shldi_epi16(__U, __A, __B, 7); } __m256i test_mm256_shldi_epi16(__m256i __A, __m256i __B) { @@ -274,14 +274,14 @@ __m128i test_mm_mask_shldi_epi16(__m128i // CHECK-LABEL: @test_mm_mask_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.128 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} - return _mm_mask_shldi_epi16(__S, __U, __A, __B, 127); + return _mm_mask_shldi_epi16(__S, __U, __A, __B, 3); } __m128i test_mm_maskz_shldi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_maskz_shldi_epi16 // CHECK: @llvm.x86.avx512.vpshld.w.128 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} - return _mm_maskz_shldi_epi16(__U, __A, __B, 63); + return _mm_maskz_shldi_epi16(__U, __A, __B, 7); } __m128i test_mm_shldi_epi16(__m128i __A, __m128i __B) { @@ -294,7 +294,7 @@ __m256i test_mm256_mask_shrdi_epi64(__m2 // CHECK-LABEL: @test_mm256_mask_shrdi_epi64 // CHECK: @llvm.x86.avx512.vpshrd.q.256 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} - return _mm256_mask_shrdi_epi64(__S, __U, __A, __B, 127); + return _mm256_mask_shrdi_epi64(__S, __U, __A, __B, 47); } __m256i test_mm256_maskz_shrdi_epi64(__mmask8 __U, __m256i __A, __m256i __B) { @@ -314,7 +314,7 @@ __m128i test_mm_mask_shrdi_epi64(__m128i // CHECK-LABEL: @test_mm_mask_shrdi_epi64 // CHECK: @llvm.x86.avx512.vpshrd.q.128 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} - return _mm_mask_shrdi_epi64(__S, __U, __A, __B, 127); + return _mm_mask_shrdi_epi64(__S, __U, __A, __B, 47); } __m128i test_mm_maskz_shrdi_epi64(__mmask8 __U, __m128i __A, __m128i __B) { @@ -334,14 +334,14 @@ __m256i test_mm256_mask_shrdi_epi32(__m2 // CHECK-LABEL: @test_mm256_mask_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.256 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} - return _mm256_mask_shrdi_epi32(__S, __U, __A, __B, 127); + return _mm256_mask_shrdi_epi32(__S, __U, __A, __B, 7); } __m256i test_mm256_maskz_shrdi_epi32(__mmask8 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_maskz_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.256 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} - return _mm256_maskz_shrdi_epi32(__U, __A, __B, 63); + return _mm256_maskz_shrdi_epi32(__U, __A, __B, 15); } __m256i test_mm256_shrdi_epi32(__m256i __A, __m256i __B) { @@ -354,14 +354,14 @@ __m128i test_mm_mask_shrdi_epi32(__m128i // CHECK-LABEL: @test_mm_mask_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.128 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} - return _mm_mask_shrdi_epi32(__S, __U, __A, __B, 127); + return _mm_mask_shrdi_epi32(__S, __U, __A, __B, 7); } __m128i test_mm_maskz_shrdi_epi32(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_maskz_shrdi_epi32 // CHECK: @llvm.x86.avx512.vpshrd.d.128 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} - return _mm_maskz_shrdi_epi32(__U, __A, __B, 63); + return _mm_maskz_shrdi_epi32(__U, __A, __B, 15); } __m128i test_mm_shrdi_epi32(__m128i __A, __m128i __B) { @@ -374,14 +374,14 @@ __m256i test_mm256_mask_shrdi_epi16(__m2 // CHECK-LABEL: @test_mm256_mask_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.256 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} - return _mm256_mask_shrdi_epi16(__S, __U, __A, __B, 127); + return _mm256_mask_shrdi_epi16(__S, __U, __A, __B, 3); } __m256i test_mm256_maskz_shrdi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { // CHECK-LABEL: @test_mm256_maskz_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.256 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} - return _mm256_maskz_shrdi_epi16(__U, __A, __B, 63); + return _mm256_maskz_shrdi_epi16(__U, __A, __B, 7); } __m256i test_mm256_shrdi_epi16(__m256i __A, __m256i __B) { @@ -394,14 +394,14 @@ __m128i test_mm_mask_shrdi_epi16(__m128i // CHECK-LABEL: @test_mm_mask_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.128 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} - return _mm_mask_shrdi_epi16(__S, __U, __A, __B, 127); + return _mm_mask_shrdi_epi16(__S, __U, __A, __B, 3); } __m128i test_mm_maskz_shrdi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { // CHECK-LABEL: @test_mm_maskz_shrdi_epi16 // CHECK: @llvm.x86.avx512.vpshrd.w.128 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} - return _mm_maskz_shrdi_epi16(__U, __A, __B, 63); + return _mm_maskz_shrdi_epi16(__U, __A, __B, 7); } __m128i test_mm_shrdi_epi16(__m128i __A, __m128i __B) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits