================
@@ -1,192 +1,540 @@
-// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -emit-llvm -o - | FileCheck
%s --check-prefix SSE
-// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx
-emit-llvm -o - | FileCheck %s --check-prefixes SSE,AVX
-// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512f
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512
-// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512bw
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512,AVX512BW
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -emit-llvm -o - | FileCheck
%s --check-prefix SSE
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx
-emit-llvm -o - | FileCheck %s --check-prefixes SSE,AVX
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512f
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512bw
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512,AVX512BW
+
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -emit-llvm -o - | FileCheck
%s --check-prefix SSE
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx
-emit-llvm -o - | FileCheck %s --check-prefixes SSE,AVX
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512f
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512bw
-target-feature +avx512vl -emit-llvm -o - | FileCheck %s --check-prefixes
SSE,AVX,AVX512,AVX512BW
+
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni
-fexperimental-new-constant-interpreter -emit-llvm -o - | FileCheck %s
--check-prefix SSE
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx
-fexperimental-new-constant-interpreter -emit-llvm -o - | FileCheck %s
--check-prefixes SSE,AVX
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512f
-target-feature +avx512vl -fexperimental-new-constant-interpreter -emit-llvm -o
- | FileCheck %s --check-prefixes SSE,AVX,AVX512
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s
-triple=x86_64-apple-darwin -target-feature +gfni -target-feature +avx512bw
-target-feature +avx512vl -fexperimental-new-constant-interpreter -emit-llvm -o
- | FileCheck %s --check-prefixes SSE,AVX,AVX512,AVX512BW
#include <immintrin.h>
+#include "builtin_test_helpers.h"
__m128i test_mm_gf2p8affineinv_epi64_epi8(__m128i A, __m128i B) {
- // SSE-LABEL: @test_mm_gf2p8affineinv_epi64_epi8
+ // SSE-LABEL: test_mm_gf2p8affineinv_epi64_epi8
// SSE: @llvm.x86.vgf2p8affineinvqb.128
return _mm_gf2p8affineinv_epi64_epi8(A, B, 1);
}
__m128i test_mm_gf2p8affine_epi64_epi8(__m128i A, __m128i B) {
- // SSE-LABEL: @test_mm_gf2p8affine_epi64_epi8
+ // SSE-LABEL: test_mm_gf2p8affine_epi64_epi8
// SSE: @llvm.x86.vgf2p8affineqb.128
return _mm_gf2p8affine_epi64_epi8(A, B, 1);
}
__m128i test_mm_gf2p8mul_epi8(__m128i A, __m128i B) {
- // SSE-LABEL: @test_mm_gf2p8mul_epi8
+ // SSE-LABEL: test_mm_gf2p8mul_epi8
// SSE: @llvm.x86.vgf2p8mulb.128
return _mm_gf2p8mul_epi8(A, B);
}
#ifdef __AVX__
__m256i test_mm256_gf2p8affineinv_epi64_epi8(__m256i A, __m256i B) {
- // AVX-LABEL: @test_mm256_gf2p8affineinv_epi64_epi8
+ // AVX-LABEL: test_mm256_gf2p8affineinv_epi64_epi8
// AVX: @llvm.x86.vgf2p8affineinvqb.256
return _mm256_gf2p8affineinv_epi64_epi8(A, B, 1);
}
__m256i test_mm256_gf2p8affine_epi64_epi8(__m256i A, __m256i B) {
- // AVX-LABEL: @test_mm256_gf2p8affine_epi64_epi8
+ // AVX-LABEL: test_mm256_gf2p8affine_epi64_epi8
// AVX: @llvm.x86.vgf2p8affineqb.256
return _mm256_gf2p8affine_epi64_epi8(A, B, 1);
}
__m256i test_mm256_gf2p8mul_epi8(__m256i A, __m256i B) {
- // AVX-LABEL: @test_mm256_gf2p8mul_epi8
+ // AVX-LABEL: test_mm256_gf2p8mul_epi8
// AVX: @llvm.x86.vgf2p8mulb.256
return _mm256_gf2p8mul_epi8(A, B);
}
#endif // __AVX__
#ifdef __AVX512F__
__m512i test_mm512_gf2p8affineinv_epi64_epi8(__m512i A, __m512i B) {
- // AVX512-LABEL: @test_mm512_gf2p8affineinv_epi64_epi8
+ // AVX512-LABEL: test_mm512_gf2p8affineinv_epi64_epi8
// AVX512: @llvm.x86.vgf2p8affineinvqb.512
return _mm512_gf2p8affineinv_epi64_epi8(A, B, 1);
}
__m512i test_mm512_gf2p8affine_epi64_epi8(__m512i A, __m512i B) {
- // AVX512-LABEL: @test_mm512_gf2p8affine_epi64_epi8
+ // AVX512-LABEL: test_mm512_gf2p8affine_epi64_epi8
// AVX512: @llvm.x86.vgf2p8affineqb.512
return _mm512_gf2p8affine_epi64_epi8(A, B, 1);
}
__m512i test_mm512_gf2p8mul_epi8(__m512i A, __m512i B) {
- // AVX512-LABEL: @test_mm512_gf2p8mul_epi8
+ // AVX512-LABEL: test_mm512_gf2p8mul_epi8
// AVX512: @llvm.x86.vgf2p8mulb.512
return _mm512_gf2p8mul_epi8(A, B);
}
#endif // __AVX512F__
#ifdef __AVX512BW__
__m512i test_mm512_mask_gf2p8affineinv_epi64_epi8(__m512i S, __mmask64 U,
__m512i A, __m512i B) {
- // AVX512BW-LABEL: @test_mm512_mask_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm512_mask_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, 1);
}
__m512i test_mm512_maskz_gf2p8affineinv_epi64_epi8(__mmask64 U, __m512i A,
__m512i B) {
- // AVX512BW-LABEL: @test_mm512_maskz_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm512_maskz_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_maskz_gf2p8affineinv_epi64_epi8(U, A, B, 1);
}
__m128i test_mm_mask_gf2p8affineinv_epi64_epi8(__m128i S, __mmask16 U, __m128i
A, __m128i B) {
- // AVX512BW-LABEL: @test_mm_mask_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm_mask_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, 1);
}
__m128i test_mm_maskz_gf2p8affineinv_epi64_epi8(__mmask16 U, __m128i A,
__m128i B) {
- // AVX512BW-LABEL: @test_mm_maskz_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm_maskz_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_maskz_gf2p8affineinv_epi64_epi8(U, A, B, 1);
}
__m256i test_mm256_mask_gf2p8affineinv_epi64_epi8(__m256i S, __mmask32 U,
__m256i A, __m256i B) {
- // AVX512BW-LABEL: @test_mm256_mask_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm256_mask_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, 1);
}
__m256i test_mm256_maskz_gf2p8affineinv_epi64_epi8(__mmask32 U, __m256i A,
__m256i B) {
- // AVX512BW-LABEL: @test_mm256_maskz_gf2p8affineinv_epi64_epi8
+ // AVX512BW-LABEL: test_mm256_maskz_gf2p8affineinv_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineinvqb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_maskz_gf2p8affineinv_epi64_epi8(U, A, B, 1);
}
__m512i test_mm512_mask_gf2p8affine_epi64_epi8(__m512i S, __mmask64 U, __m512i
A, __m512i B) {
- // AVX512BW-LABEL: @test_mm512_mask_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm512_mask_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_mask_gf2p8affine_epi64_epi8(S, U, A, B, 1);
}
__m512i test_mm512_maskz_gf2p8affine_epi64_epi8(__mmask64 U, __m512i A,
__m512i B) {
- // AVX512BW-LABEL: @test_mm512_maskz_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm512_maskz_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_maskz_gf2p8affine_epi64_epi8(U, A, B, 1);
}
__m128i test_mm_mask_gf2p8affine_epi64_epi8(__m128i S, __mmask16 U, __m128i A,
__m128i B) {
- // AVX512BW-LABEL: @test_mm_mask_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm_mask_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_mask_gf2p8affine_epi64_epi8(S, U, A, B, 1);
}
__m128i test_mm_maskz_gf2p8affine_epi64_epi8(__mmask16 U, __m128i A, __m128i
B) {
- // AVX512BW-LABEL: @test_mm_maskz_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm_maskz_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_maskz_gf2p8affine_epi64_epi8(U, A, B, 1);
}
__m256i test_mm256_mask_gf2p8affine_epi64_epi8(__m256i S, __mmask32 U, __m256i
A, __m256i B) {
- // AVX512BW-LABEL: @test_mm256_mask_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm256_mask_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_mask_gf2p8affine_epi64_epi8(S, U, A, B, 1);
}
__m256i test_mm256_maskz_gf2p8affine_epi64_epi8(__mmask32 U, __m256i A,
__m256i B) {
- // AVX512BW-LABEL: @test_mm256_maskz_gf2p8affine_epi64_epi8
+ // AVX512BW-LABEL: test_mm256_maskz_gf2p8affine_epi64_epi8
// AVX512BW: @llvm.x86.vgf2p8affineqb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_maskz_gf2p8affine_epi64_epi8(U, A, B, 1);
}
__m512i test_mm512_mask_gf2p8mul_epi8(__m512i S, __mmask64 U, __m512i A,
__m512i B) {
- // AVX512BW-LABEL: @test_mm512_mask_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm512_mask_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_mask_gf2p8mul_epi8(S, U, A, B);
}
__m512i test_mm512_maskz_gf2p8mul_epi8(__mmask64 U, __m512i A, __m512i B) {
- // AVX512BW-LABEL: @test_mm512_maskz_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm512_maskz_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.512
// AVX512BW: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8>
{{.*}}
return _mm512_maskz_gf2p8mul_epi8(U, A, B);
}
__m128i test_mm_mask_gf2p8mul_epi8(__m128i S, __mmask16 U, __m128i A, __m128i
B) {
- // AVX512BW-LABEL: @test_mm_mask_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm_mask_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_mask_gf2p8mul_epi8(S, U, A, B);
}
__m128i test_mm_maskz_gf2p8mul_epi8(__mmask16 U, __m128i A, __m128i B) {
- // AVX512BW-LABEL: @test_mm_maskz_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm_maskz_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.128
// AVX512BW: select <16 x i1> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i8>
{{.*}}
return _mm_maskz_gf2p8mul_epi8(U, A, B);
}
__m256i test_mm256_mask_gf2p8mul_epi8(__m256i S, __mmask32 U, __m256i A,
__m256i B) {
- // AVX512BW-LABEL: @test_mm256_mask_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm256_mask_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_mask_gf2p8mul_epi8(S, U, A, B);
}
__m256i test_mm256_maskz_gf2p8mul_epi8(__mmask32 U, __m256i A, __m256i B) {
- // AVX512BW-LABEL: @test_mm256_maskz_gf2p8mul_epi8
+ // AVX512BW-LABEL: test_mm256_maskz_gf2p8mul_epi8
// AVX512BW: @llvm.x86.vgf2p8mulb.256
// AVX512BW: select <32 x i1> %{{[0-9]+}}, <32 x i8> %{{[0-9]+}}, <32 x i8>
{{.*}}
return _mm256_maskz_gf2p8mul_epi8(U, A, B);
}
#endif // __AVX512BW__
+
+TEST_CONSTEXPR(match_v16qu(
+ _mm_gf2p8mul_epi8(_mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15),
+ _mm_set_epi8(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4,
3, 2, 1, 0)),
+ 0, 14, 26, 20, 44, 34, 54, 56, 56, 54, 34, 44, 20, 26, 14, 0));
+TEST_CONSTEXPR(match_v16qu(
+ _mm_gf2p8affine_epi64_epi8(
+ _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),
+ _mm_set_epi64x(0x0102040810204080ULL, 0x0102040810204080ULL), 0x63),
+ 108, 109, 110, 111, 104, 105, 106, 107, 100, 101, 102, 103, 96, 97, 98,
99));
+TEST_CONSTEXPR(match_v16qu(
+ _mm_gf2p8affineinv_epi64_epi8(
+ _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),
+ _mm_set_epi64x(0x0102040810204080ULL, 0x0102040810204080ULL), 0x63),
+ 164, 134, 130, 211, 163, 74, 44, 139, 178, 24, 49, 168, 149, 238, 98, 99));
----------------
RKSimon wrote:
Can't we put these beneath the corresponding test_ intrinsic test?
https://github.com/llvm/llvm-project/pull/169619
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits