diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-11-08 15:58:56 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-11-08 16:20:34 +0000 |
commit | 45f1db4855efe376b731a81b71bdbf2098cd328e (patch) | |
tree | b98ff2eb41bdf805592dfccc2e2b2f71fe76a188 | |
parent | 5cc603cb2244bb46683e4ce801fdf224aa2d1636 (diff) |
[X86] vec_fabs.ll - add AVX2 test coverage
-rw-r--r-- | llvm/test/CodeGen/X86/vec_fabs.ll | 98 |
1 files changed, 68 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/X86/vec_fabs.ll b/llvm/test/CodeGen/X86/vec_fabs.ll index 982062d89075..028760ff464c 100644 --- a/llvm/test/CodeGen/X86/vec_fabs.ll +++ b/llvm/test/CodeGen/X86/vec_fabs.ll @@ -1,10 +1,12 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX -; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX512VL -; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX512VLDQ -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX512VL -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX512VLDQ +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=X86,X86-AVX,X86-AVX1 +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=X86,X86-AVX,X86-AVX2 +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefixes=X86,X86-AVX512VL +; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=X86,X86-AVX512VLDQ +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=X64,X64-AVX,X64-AVX1 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=X64,X64-AVX,X64-AVX2 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefixes=X64,X64-AVX512VL +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=X64,X64-AVX512VLDQ define <2 x double> @fabs_v2f64(<2 x double> %p) { ; X86-AVX-LABEL: fabs_v2f64: @@ -42,10 +44,16 @@ define <2 x double> @fabs_v2f64(<2 x double> %p) { declare <2 x double> @llvm.fabs.v2f64(<2 x double> %p) define <4 x float> @fabs_v4f32(<4 x float> %p) { -; X86-AVX-LABEL: fabs_v4f32: -; X86-AVX: # %bb.0: -; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0, %xmm0 -; X86-AVX-NEXT: retl +; X86-AVX1-LABEL: fabs_v4f32: +; X86-AVX1: # %bb.0: +; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0, %xmm0 +; X86-AVX1-NEXT: retl +; +; X86-AVX2-LABEL: fabs_v4f32: +; X86-AVX2: # %bb.0: +; X86-AVX2-NEXT: vbroadcastss {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN] +; X86-AVX2-NEXT: vandps %xmm1, %xmm0, %xmm0 +; X86-AVX2-NEXT: retl ; ; X86-AVX512VL-LABEL: fabs_v4f32: ; X86-AVX512VL: # %bb.0: @@ -57,10 +65,16 @@ define <4 x float> @fabs_v4f32(<4 x float> %p) { ; X86-AVX512VLDQ-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}{1to4}, %xmm0, %xmm0 ; X86-AVX512VLDQ-NEXT: retl ; -; X64-AVX-LABEL: fabs_v4f32: -; X64-AVX: # %bb.0: -; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 -; X64-AVX-NEXT: retq +; X64-AVX1-LABEL: fabs_v4f32: +; X64-AVX1: # %bb.0: +; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 +; X64-AVX1-NEXT: retq +; +; X64-AVX2-LABEL: fabs_v4f32: +; X64-AVX2: # %bb.0: +; X64-AVX2-NEXT: vbroadcastss {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN] +; X64-AVX2-NEXT: vandps %xmm1, %xmm0, %xmm0 +; X64-AVX2-NEXT: retq ; ; X64-AVX512VL-LABEL: fabs_v4f32: ; X64-AVX512VL: # %bb.0: @@ -77,10 +91,16 @@ define <4 x float> @fabs_v4f32(<4 x float> %p) { declare <4 x float> @llvm.fabs.v4f32(<4 x float> %p) define <4 x double> @fabs_v4f64(<4 x double> %p) { -; X86-AVX-LABEL: fabs_v4f64: -; X86-AVX: # %bb.0: -; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0 -; X86-AVX-NEXT: retl +; X86-AVX1-LABEL: fabs_v4f64: +; X86-AVX1: # %bb.0: +; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0 +; X86-AVX1-NEXT: retl +; +; X86-AVX2-LABEL: fabs_v4f64: +; X86-AVX2: # %bb.0: +; X86-AVX2-NEXT: vbroadcastsd {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN] +; X86-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0 +; X86-AVX2-NEXT: retl ; ; X86-AVX512VL-LABEL: fabs_v4f64: ; X86-AVX512VL: # %bb.0: @@ -92,10 +112,16 @@ define <4 x double> @fabs_v4f64(<4 x double> %p) { ; X86-AVX512VLDQ-NEXT: vandpd {{\.?LCPI[0-9]+_[0-9]+}}{1to4}, %ymm0, %ymm0 ; X86-AVX512VLDQ-NEXT: retl ; -; X64-AVX-LABEL: fabs_v4f64: -; X64-AVX: # %bb.0: -; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0 -; X64-AVX-NEXT: retq +; X64-AVX1-LABEL: fabs_v4f64: +; X64-AVX1: # %bb.0: +; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0 +; X64-AVX1-NEXT: retq +; +; X64-AVX2-LABEL: fabs_v4f64: +; X64-AVX2: # %bb.0: +; X64-AVX2-NEXT: vbroadcastsd {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN] +; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0 +; X64-AVX2-NEXT: retq ; ; X64-AVX512VL-LABEL: fabs_v4f64: ; X64-AVX512VL: # %bb.0: @@ -112,10 +138,16 @@ define <4 x double> @fabs_v4f64(<4 x double> %p) { declare <4 x double> @llvm.fabs.v4f64(<4 x double> %p) define <8 x float> @fabs_v8f32(<8 x float> %p) { -; X86-AVX-LABEL: fabs_v8f32: -; X86-AVX: # %bb.0: -; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0 -; X86-AVX-NEXT: retl +; X86-AVX1-LABEL: fabs_v8f32: +; X86-AVX1: # %bb.0: +; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0 +; X86-AVX1-NEXT: retl +; +; X86-AVX2-LABEL: fabs_v8f32: +; X86-AVX2: # %bb.0: +; X86-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN] +; X86-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0 +; X86-AVX2-NEXT: retl ; ; X86-AVX512VL-LABEL: fabs_v8f32: ; X86-AVX512VL: # %bb.0: @@ -127,10 +159,16 @@ define <8 x float> @fabs_v8f32(<8 x float> %p) { ; X86-AVX512VLDQ-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0 ; X86-AVX512VLDQ-NEXT: retl ; -; X64-AVX-LABEL: fabs_v8f32: -; X64-AVX: # %bb.0: -; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0 -; X64-AVX-NEXT: retq +; X64-AVX1-LABEL: fabs_v8f32: +; X64-AVX1: # %bb.0: +; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0 +; X64-AVX1-NEXT: retq +; +; X64-AVX2-LABEL: fabs_v8f32: +; X64-AVX2: # %bb.0: +; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN] +; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0 +; X64-AVX2-NEXT: retq ; ; X64-AVX512VL-LABEL: fabs_v8f32: ; X64-AVX512VL: # %bb.0: |