================
@@ -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

Reply via email to