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); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits