From: Craig Topper Date: Sun, 12 Jun 2016 01:41:06 +0000 (+0000) Subject: [X86] Move tests for llvm.x86.avx.vpermil.* intrinsics to a -upgrade test since they... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0771fcddeb69a6eab47b6e3c13946d639aca5a51;p=llvm [X86] Move tests for llvm.x86.avx.vpermil.* intrinsics to a -upgrade test since they are autoupgraded to shufflevector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272494 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll b/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll index ccdf5ec5fa0..fae47b24f3b 100644 --- a/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll +++ b/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll @@ -1,4 +1,4 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=avx | FileCheck %s ; We don't check any vinsertf128 variant with immediate 0 because that's just a blend. @@ -473,3 +473,47 @@ define void @test_x86_avx_storeu_ps_256(i8* %a0, <8 x float> %a1) { ret void } declare void @llvm.x86.avx.storeu.ps.256(i8*, <8 x float>) nounwind + + +define <2 x double> @test_x86_avx_vpermil_pd(<2 x double> %a0) { +; CHECK-LABEL: test_x86_avx_vpermil_pd: +; CHECK: ## BB#0: +; CHECK-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0] +; CHECK-NEXT: retl + %res = call <2 x double> @llvm.x86.avx.vpermil.pd(<2 x double> %a0, i8 1) ; <<2 x double>> [#uses=1] + ret <2 x double> %res +} +declare <2 x double> @llvm.x86.avx.vpermil.pd(<2 x double>, i8) nounwind readnone + + +define <4 x double> @test_x86_avx_vpermil_pd_256(<4 x double> %a0) { +; CHECK-LABEL: test_x86_avx_vpermil_pd_256: +; CHECK: ## BB#0: +; CHECK-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,1,3,2] +; CHECK-NEXT: retl + %res = call <4 x double> @llvm.x86.avx.vpermil.pd.256(<4 x double> %a0, i8 7) ; <<4 x double>> [#uses=1] + ret <4 x double> %res +} +declare <4 x double> @llvm.x86.avx.vpermil.pd.256(<4 x double>, i8) nounwind readnone + + +define <4 x float> @test_x86_avx_vpermil_ps(<4 x float> %a0) { +; CHECK-LABEL: test_x86_avx_vpermil_ps: +; CHECK: ## BB#0: +; CHECK-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,1,0,0] +; CHECK-NEXT: retl + %res = call <4 x float> @llvm.x86.avx.vpermil.ps(<4 x float> %a0, i8 7) ; <<4 x float>> [#uses=1] + ret <4 x float> %res +} +declare <4 x float> @llvm.x86.avx.vpermil.ps(<4 x float>, i8) nounwind readnone + + +define <8 x float> @test_x86_avx_vpermil_ps_256(<8 x float> %a0) { +; CHECK-LABEL: test_x86_avx_vpermil_ps_256: +; CHECK: ## BB#0: +; CHECK-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,1,0,0,7,5,4,4] +; CHECK-NEXT: retl + %res = call <8 x float> @llvm.x86.avx.vpermil.ps.256(<8 x float> %a0, i8 7) ; <<8 x float>> [#uses=1] + ret <8 x float> %res +} +declare <8 x float> @llvm.x86.avx.vpermil.ps.256(<8 x float>, i8) nounwind readnone diff --git a/test/CodeGen/X86/avx-intrinsics-x86.ll b/test/CodeGen/X86/avx-intrinsics-x86.ll index 4dfd4b6d640..dc1414990ee 100644 --- a/test/CodeGen/X86/avx-intrinsics-x86.ll +++ b/test/CodeGen/X86/avx-intrinsics-x86.ll @@ -3997,70 +3997,6 @@ define <8 x i32> @test_x86_avx_vperm2f128_si_256(<8 x i32> %a0, <8 x i32> %a1) { declare <8 x i32> @llvm.x86.avx.vperm2f128.si.256(<8 x i32>, <8 x i32>, i8) nounwind readnone -define <2 x double> @test_x86_avx_vpermil_pd(<2 x double> %a0) { -; AVX-LABEL: test_x86_avx_vpermil_pd: -; AVX: ## BB#0: -; AVX-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0] -; AVX-NEXT: retl -; -; AVX512VL-LABEL: test_x86_avx_vpermil_pd: -; AVX512VL: ## BB#0: -; AVX512VL-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0] -; AVX512VL-NEXT: retl - %res = call <2 x double> @llvm.x86.avx.vpermil.pd(<2 x double> %a0, i8 1) ; <<2 x double>> [#uses=1] - ret <2 x double> %res -} -declare <2 x double> @llvm.x86.avx.vpermil.pd(<2 x double>, i8) nounwind readnone - - -define <4 x double> @test_x86_avx_vpermil_pd_256(<4 x double> %a0) { -; AVX-LABEL: test_x86_avx_vpermil_pd_256: -; AVX: ## BB#0: -; AVX-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,1,3,2] -; AVX-NEXT: retl -; -; AVX512VL-LABEL: test_x86_avx_vpermil_pd_256: -; AVX512VL: ## BB#0: -; AVX512VL-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,1,3,2] -; AVX512VL-NEXT: retl - %res = call <4 x double> @llvm.x86.avx.vpermil.pd.256(<4 x double> %a0, i8 7) ; <<4 x double>> [#uses=1] - ret <4 x double> %res -} -declare <4 x double> @llvm.x86.avx.vpermil.pd.256(<4 x double>, i8) nounwind readnone - - -define <4 x float> @test_x86_avx_vpermil_ps(<4 x float> %a0) { -; AVX-LABEL: test_x86_avx_vpermil_ps: -; AVX: ## BB#0: -; AVX-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,1,0,0] -; AVX-NEXT: retl -; -; AVX512VL-LABEL: test_x86_avx_vpermil_ps: -; AVX512VL: ## BB#0: -; AVX512VL-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,1,0,0] -; AVX512VL-NEXT: retl - %res = call <4 x float> @llvm.x86.avx.vpermil.ps(<4 x float> %a0, i8 7) ; <<4 x float>> [#uses=1] - ret <4 x float> %res -} -declare <4 x float> @llvm.x86.avx.vpermil.ps(<4 x float>, i8) nounwind readnone - - -define <8 x float> @test_x86_avx_vpermil_ps_256(<8 x float> %a0) { -; AVX-LABEL: test_x86_avx_vpermil_ps_256: -; AVX: ## BB#0: -; AVX-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,1,0,0,7,5,4,4] -; AVX-NEXT: retl -; -; AVX512VL-LABEL: test_x86_avx_vpermil_ps_256: -; AVX512VL: ## BB#0: -; AVX512VL-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,1,0,0,7,5,4,4] -; AVX512VL-NEXT: retl - %res = call <8 x float> @llvm.x86.avx.vpermil.ps.256(<8 x float> %a0, i8 7) ; <<8 x float>> [#uses=1] - ret <8 x float> %res -} -declare <8 x float> @llvm.x86.avx.vpermil.ps.256(<8 x float>, i8) nounwind readnone - - define <2 x double> @test_x86_avx_vpermilvar_pd(<2 x double> %a0, <2 x i64> %a1) { ; AVX-LABEL: test_x86_avx_vpermilvar_pd: ; AVX: ## BB#0: @@ -4100,7 +4036,7 @@ define <4 x double> @test_x86_avx_vpermilvar_pd_256_2(<4 x double> %a0) { ; ; AVX512VL-LABEL: test_x86_avx_vpermilvar_pd_256_2: ; AVX512VL: ## BB#0: -; AVX512VL-NEXT: vpermilpd LCPI231_0, %ymm0, %ymm0 +; AVX512VL-NEXT: vpermilpd LCPI227_0, %ymm0, %ymm0 ; AVX512VL-NEXT: retl %res = call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %a0, <4 x i64> ) ; <<4 x double>> [#uses=1] ret <4 x double> %res @@ -4592,7 +4528,7 @@ define void @movnt_dq(i8* %p, <2 x i64> %a1) nounwind { ; AVX-LABEL: movnt_dq: ; AVX: ## BB#0: ; AVX-NEXT: movl {{[0-9]+}}(%esp), %eax -; AVX-NEXT: vpaddq LCPI258_0, %xmm0, %xmm0 +; AVX-NEXT: vpaddq LCPI254_0, %xmm0, %xmm0 ; AVX-NEXT: vmovntdq %ymm0, (%eax) ; AVX-NEXT: vzeroupper ; AVX-NEXT: retl @@ -4600,7 +4536,7 @@ define void @movnt_dq(i8* %p, <2 x i64> %a1) nounwind { ; AVX512VL-LABEL: movnt_dq: ; AVX512VL: ## BB#0: ; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax -; AVX512VL-NEXT: vpaddq LCPI258_0, %xmm0, %xmm0 +; AVX512VL-NEXT: vpaddq LCPI254_0, %xmm0, %xmm0 ; AVX512VL-NEXT: vmovntdq %ymm0, (%eax) ; AVX512VL-NEXT: retl %a2 = add <2 x i64> %a1,