[llvm] 2d73295 - [X86] Add AVX512FP16 test coverage to splat(fpext) tests.

Freddy Ye via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 15 18:19:33 PST 2023


Author: Freddy Ye
Date: 2023-01-16T10:19:19+08:00
New Revision: 2d73295c43442302bda99a09708fca6265742a13

URL: https://github.com/llvm/llvm-project/commit/2d73295c43442302bda99a09708fca6265742a13
DIFF: https://github.com/llvm/llvm-project/commit/2d73295c43442302bda99a09708fca6265742a13.diff

LOG: [X86] Add AVX512FP16 test coverage to splat(fpext) tests.

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/prefer-fpext-splat.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/prefer-fpext-splat.ll b/llvm/test/CodeGen/X86/prefer-fpext-splat.ll
index 0cd4472f58b2..4f0c2bb65d1d 100644
--- a/llvm/test/CodeGen/X86/prefer-fpext-splat.ll
+++ b/llvm/test/CodeGen/X86/prefer-fpext-splat.ll
@@ -1,8 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown                           | FileCheck %s --check-prefixes=SSE
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx               | FileCheck %s --check-prefixes=AVX,AVX1
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2              | FileCheck %s --check-prefixes=AVX,AVX2
-; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl | FileCheck %s --check-prefixes=AVX,AVX512
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown                              | FileCheck %s --check-prefixes=SSE
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx                  | FileCheck %s --check-prefixes=AVX,AVX1
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2                 | FileCheck %s --check-prefixes=AVX,AVX2
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl    | FileCheck %s --check-prefixes=AVX,AVX512
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512fp16,+avx512vl | FileCheck %s --check-prefixes=AVX,AVX512FP16
 
 define <2 x double> @prefer_f32_v2f64(ptr %p) nounwind {
 ; SSE-LABEL: prefer_f32_v2f64:
@@ -56,6 +57,13 @@ define <4 x double> @prefer_f32_v4f64(ptr %p) nounwind {
 ; AVX512-NEXT:    vcvtss2sd %xmm0, %xmm0, %xmm0
 ; AVX512-NEXT:    vbroadcastsd %xmm0, %ymm0
 ; AVX512-NEXT:    retq
+;
+; AVX512FP16-LABEL: prefer_f32_v4f64:
+; AVX512FP16:       # %bb.0: # %entry
+; AVX512FP16-NEXT:    vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; AVX512FP16-NEXT:    vcvtss2sd %xmm0, %xmm0, %xmm0
+; AVX512FP16-NEXT:    vbroadcastsd %xmm0, %ymm0
+; AVX512FP16-NEXT:    retq
 entry:
   %0 = load float, ptr %p, align 4
   %vecinit.i = insertelement <4 x float> undef, float %0, i64 0
@@ -99,6 +107,13 @@ define <4 x float> @prefer_f16_v4f32(ptr %p) nounwind {
 ; AVX512-NEXT:    vcvtph2ps %xmm0, %xmm0
 ; AVX512-NEXT:    vbroadcastss %xmm0, %xmm0
 ; AVX512-NEXT:    retq
+;
+; AVX512FP16-LABEL: prefer_f16_v4f32:
+; AVX512FP16:       # %bb.0: # %entry
+; AVX512FP16-NEXT:    vmovsh (%rdi), %xmm0
+; AVX512FP16-NEXT:    vcvtsh2ss %xmm0, %xmm0, %xmm0
+; AVX512FP16-NEXT:    vbroadcastss %xmm0, %xmm0
+; AVX512FP16-NEXT:    retq
 entry:
   %0 = load half, ptr %p, align 4
   %vecinit.i = insertelement <4 x half> undef, half %0, i64 0
@@ -144,6 +159,13 @@ define <8 x float> @prefer_f16_v8f32(ptr %p) nounwind {
 ; AVX512-NEXT:    vcvtph2ps %xmm0, %xmm0
 ; AVX512-NEXT:    vbroadcastss %xmm0, %ymm0
 ; AVX512-NEXT:    retq
+;
+; AVX512FP16-LABEL: prefer_f16_v8f32:
+; AVX512FP16:       # %bb.0: # %entry
+; AVX512FP16-NEXT:    vmovsh (%rdi), %xmm0
+; AVX512FP16-NEXT:    vcvtsh2ss %xmm0, %xmm0, %xmm0
+; AVX512FP16-NEXT:    vbroadcastss %xmm0, %ymm0
+; AVX512FP16-NEXT:    retq
 entry:
   %0 = load half, ptr %p, align 4
   %vecinit.i = insertelement <8 x half> undef, half %0, i64 0
@@ -191,6 +213,13 @@ define <2 x double> @prefer_f16_v2f64(ptr %p) nounwind {
 ; AVX512-NEXT:    vcvtss2sd %xmm0, %xmm0, %xmm0
 ; AVX512-NEXT:    vmovddup {{.*#+}} xmm0 = xmm0[0,0]
 ; AVX512-NEXT:    retq
+;
+; AVX512FP16-LABEL: prefer_f16_v2f64:
+; AVX512FP16:       # %bb.0: # %entry
+; AVX512FP16-NEXT:    vmovsh (%rdi), %xmm0
+; AVX512FP16-NEXT:    vcvtsh2sd %xmm0, %xmm0, %xmm0
+; AVX512FP16-NEXT:    vmovddup {{.*#+}} xmm0 = xmm0[0,0]
+; AVX512FP16-NEXT:    retq
 entry:
   %0 = load half, ptr %p, align 4
   %vecinit.i = insertelement <2 x half> undef, half %0, i64 0
@@ -240,6 +269,13 @@ define <4 x double> @prefer_f16_v4f64(ptr %p) nounwind {
 ; AVX512-NEXT:    vcvtss2sd %xmm0, %xmm0, %xmm0
 ; AVX512-NEXT:    vbroadcastsd %xmm0, %ymm0
 ; AVX512-NEXT:    retq
+;
+; AVX512FP16-LABEL: prefer_f16_v4f64:
+; AVX512FP16:       # %bb.0: # %entry
+; AVX512FP16-NEXT:    vmovsh (%rdi), %xmm0
+; AVX512FP16-NEXT:    vcvtsh2sd %xmm0, %xmm0, %xmm0
+; AVX512FP16-NEXT:    vbroadcastsd %xmm0, %ymm0
+; AVX512FP16-NEXT:    retq
 entry:
   %0 = load half, ptr %p, align 4
   %vecinit.i = insertelement <4 x half> undef, half %0, i64 0


        


More information about the llvm-commits mailing list