[clang] 6ad39bc - [X86] avxifma-builtins.c / avx512ifma-builtins.c / avx512ifmavl-builtins.c - add C/C++ and 32/64-bit test coverage
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 15 04:10:15 PDT 2025
Author: Simon Pilgrim
Date: 2025-08-15T12:09:54+01:00
New Revision: 6ad39bc8669845ddee758d2a43744fe17e7194f6
URL: https://github.com/llvm/llvm-project/commit/6ad39bc8669845ddee758d2a43744fe17e7194f6
DIFF: https://github.com/llvm/llvm-project/commit/6ad39bc8669845ddee758d2a43744fe17e7194f6.diff
LOG: [X86] avxifma-builtins.c / avx512ifma-builtins.c / avx512ifmavl-builtins.c - add C/C++ and 32/64-bit test coverage
Added:
Modified:
clang/test/CodeGen/X86/avx512ifma-builtins.c
clang/test/CodeGen/X86/avx512ifmavl-builtins.c
clang/test/CodeGen/X86/avxifma-builtins.c
Removed:
################################################################################
diff --git a/clang/test/CodeGen/X86/avx512ifma-builtins.c b/clang/test/CodeGen/X86/avx512ifma-builtins.c
index e2077b5b59124..7c7c492c79c99 100644
--- a/clang/test/CodeGen/X86/avx512ifma-builtins.c
+++ b/clang/test/CodeGen/X86/avx512ifma-builtins.c
@@ -1,44 +1,47 @@
-// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512ifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512ifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512ifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512ifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512ifma -emit-llvm -o - -Wall -Werror | FileCheck %s
#include <immintrin.h>
__m512i test_mm512_madd52hi_epu64(__m512i __X, __m512i __Y, __m512i __Z) {
- // CHECK-LABEL: @test_mm512_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512
+ // CHECK-LABEL: test_mm512_madd52hi_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
return _mm512_madd52hi_epu64(__X, __Y, __Z);
}
__m512i test_mm512_mask_madd52hi_epu64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
- // CHECK-LABEL: @test_mm512_mask_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512
+ // CHECK-LABEL: test_mm512_mask_madd52hi_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
return _mm512_mask_madd52hi_epu64(__W, __M, __X, __Y);
}
__m512i test_mm512_maskz_madd52hi_epu64(__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) {
- // CHECK-LABEL: @test_mm512_maskz_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512
+ // CHECK-LABEL: test_mm512_maskz_madd52hi_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52h.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
return _mm512_maskz_madd52hi_epu64(__M, __X, __Y, __Z);
}
__m512i test_mm512_madd52lo_epu64(__m512i __X, __m512i __Y, __m512i __Z) {
- // CHECK-LABEL: @test_mm512_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512
+ // CHECK-LABEL: test_mm512_madd52lo_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
return _mm512_madd52lo_epu64(__X, __Y, __Z);
}
__m512i test_mm512_mask_madd52lo_epu64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) {
- // CHECK-LABEL: @test_mm512_mask_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512
+ // CHECK-LABEL: test_mm512_mask_madd52lo_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
return _mm512_mask_madd52lo_epu64(__W, __M, __X, __Y);
}
__m512i test_mm512_maskz_madd52lo_epu64(__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) {
- // CHECK-LABEL: @test_mm512_maskz_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512
+ // CHECK-LABEL: test_mm512_maskz_madd52lo_epu64
+ // CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.vpmadd52l.uq.512(<8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}})
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
return _mm512_maskz_madd52lo_epu64(__M, __X, __Y, __Z);
}
diff --git a/clang/test/CodeGen/X86/avx512ifmavl-builtins.c b/clang/test/CodeGen/X86/avx512ifmavl-builtins.c
index 3b744787f2abc..c115b60381383 100644
--- a/clang/test/CodeGen/X86/avx512ifmavl-builtins.c
+++ b/clang/test/CodeGen/X86/avx512ifmavl-builtins.c
@@ -1,83 +1,86 @@
-// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c %s -flax-vector-conversions=none -ffreestanding -triple=i386-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ %s -flax-vector-conversions=none -ffreestanding -triple=i386-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
#include <immintrin.h>
__m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
- // CHECK-LABEL: @test_mm_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
+ // CHECK-LABEL: test_mm_madd52hi_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52hi_epu64(__X, __Y, __Z);
}
__m128i test_mm_mask_madd52hi_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) {
- // CHECK-LABEL: @test_mm_mask_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
+ // CHECK-LABEL: test_mm_mask_madd52hi_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
return _mm_mask_madd52hi_epu64(__W, __M, __X, __Y);
}
__m128i test_mm_maskz_madd52hi_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) {
- // CHECK-LABEL: @test_mm_maskz_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
+ // CHECK-LABEL: test_mm_maskz_madd52hi_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
return _mm_maskz_madd52hi_epu64(__M, __X, __Y, __Z);
}
__m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
- // CHECK-LABEL: @test_mm256_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
+ // CHECK-LABEL: test_mm256_madd52hi_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52hi_epu64(__X, __Y, __Z);
}
__m256i test_mm256_mask_madd52hi_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
- // CHECK-LABEL: @test_mm256_mask_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
+ // CHECK-LABEL: test_mm256_mask_madd52hi_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
return _mm256_mask_madd52hi_epu64(__W, __M, __X, __Y);
}
__m256i test_mm256_maskz_madd52hi_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) {
- // CHECK-LABEL: @test_mm256_maskz_madd52hi_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
+ // CHECK-LABEL: test_mm256_maskz_madd52hi_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
return _mm256_maskz_madd52hi_epu64(__M, __X, __Y, __Z);
}
__m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
- // CHECK-LABEL: @test_mm_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
+ // CHECK-LABEL: test_mm_madd52lo_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52lo_epu64(__X, __Y, __Z);
}
__m128i test_mm_mask_madd52lo_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) {
- // CHECK-LABEL: @test_mm_mask_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
+ // CHECK-LABEL: test_mm_mask_madd52lo_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
return _mm_mask_madd52lo_epu64(__W, __M, __X, __Y);
}
__m128i test_mm_maskz_madd52lo_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) {
- // CHECK-LABEL: @test_mm_maskz_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
+ // CHECK-LABEL: test_mm_maskz_madd52lo_epu64
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
return _mm_maskz_madd52lo_epu64(__M, __X, __Y, __Z);
}
__m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
- // CHECK-LABEL: @test_mm256_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
+ // CHECK-LABEL: test_mm256_madd52lo_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52lo_epu64(__X, __Y, __Z);
}
__m256i test_mm256_mask_madd52lo_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
- // CHECK-LABEL: @test_mm256_mask_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
+ // CHECK-LABEL: test_mm256_mask_madd52lo_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
return _mm256_mask_madd52lo_epu64(__W, __M, __X, __Y);
}
__m256i test_mm256_maskz_madd52lo_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) {
- // CHECK-LABEL: @test_mm256_maskz_madd52lo_epu64
- // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
+ // CHECK-LABEL: test_mm256_maskz_madd52lo_epu64
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
return _mm256_maskz_madd52lo_epu64(__M, __X, __Y, __Z);
}
diff --git a/clang/test/CodeGen/X86/avxifma-builtins.c b/clang/test/CodeGen/X86/avxifma-builtins.c
index 56e434cd7b164..dd0f220b378b4 100644
--- a/clang/test/CodeGen/X86/avxifma-builtins.c
+++ b/clang/test/CodeGen/X86/avxifma-builtins.c
@@ -1,52 +1,54 @@
-// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
-// RUN: %clang_cc1 -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
+// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxifma -emit-llvm -o - -Wall -Werror | FileCheck %s
#include <immintrin.h>
__m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
-// CHECK-LABEL: @test_mm_madd52hi_epu64
-// CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128
+// CHECK-LABEL: test_mm_madd52hi_epu64
+// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52hi_epu64(__X, __Y, __Z);
}
__m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
-// CHECK-LABEL: @test_mm256_madd52hi_epu64
-// CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256
+// CHECK-LABEL: test_mm256_madd52hi_epu64
+// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52hi_epu64(__X, __Y, __Z);
}
__m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
-// CHECK-LABEL: @test_mm_madd52lo_epu64
-// CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128
+// CHECK-LABEL: test_mm_madd52lo_epu64
+// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52lo_epu64(__X, __Y, __Z);
}
__m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
-// CHECK-LABEL: @test_mm256_madd52lo_epu64
-// CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256
+// CHECK-LABEL: test_mm256_madd52lo_epu64
+// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52lo_epu64(__X, __Y, __Z);
}
__m128i test_mm_madd52hi_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
-// CHECK-LABEL: @test_mm_madd52hi_avx_epu64
-// CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128
+// CHECK-LABEL: test_mm_madd52hi_avx_epu64
+// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52hi_avx_epu64(__X, __Y, __Z);
}
__m256i test_mm256_madd52hi_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
-// CHECK-LABEL: @test_mm256_madd52hi_avx_epu64
-// CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256
+// CHECK-LABEL: test_mm256_madd52hi_avx_epu64
+// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52hi_avx_epu64(__X, __Y, __Z);
}
__m128i test_mm_madd52lo_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
-// CHECK-LABEL: @test_mm_madd52lo_avx_epu64
-// CHECK: call <2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128
+// CHECK-LABEL: test_mm_madd52lo_avx_epu64
+// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
return _mm_madd52lo_avx_epu64(__X, __Y, __Z);
}
__m256i test_mm256_madd52lo_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
-// CHECK-LABEL: @test_mm256_madd52lo_avx_epu64
-// CHECK: call <4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256
+// CHECK-LABEL: test_mm256_madd52lo_avx_epu64
+// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52lo_avx_epu64(__X, __Y, __Z);
}
More information about the cfe-commits
mailing list