From ef0d90f682b169b3148ff66cb1f592d78adec2f3 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 25 Jan 2022 16:23:10 +0000 Subject: [PATCH] [X86] Regenerate avx-vbroadcast.ll Remove '' around mattr to stop update script crash and use X86 prefixes instead of X32 --- llvm/test/CodeGen/X86/avx-vbroadcast.ll | 576 ++++++++++++++++---------------- 1 file changed, 288 insertions(+), 288 deletions(-) diff --git a/llvm/test/CodeGen/X86/avx-vbroadcast.ll b/llvm/test/CodeGen/X86/avx-vbroadcast.ll index 5ebe670..df131f0 100644 --- a/llvm/test/CodeGen/X86/avx-vbroadcast.ll +++ b/llvm/test/CodeGen/X86/avx-vbroadcast.ll @@ -1,13 +1,13 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=i686-apple-darwin -mattr='+avx,+mmx' | FileCheck %s --check-prefix=X32 -; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr='+avx,+mmx' | FileCheck %s --check-prefix=X64 +; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx,+mmx | FileCheck %s --check-prefix=X86 +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx,+mmx | FileCheck %s --check-prefix=X64 define <4 x i64> @A(i64* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: A: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: A: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: A: ; X64: ## %bb.0: ## %entry @@ -23,20 +23,20 @@ entry: } define <4 x i64> @A2(i64* %ptr, i64* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: A2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: pushl %esi -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %esi, -8 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: movl (%ecx), %edx -; X32-NEXT: movl 4(%ecx), %esi -; X32-NEXT: vbroadcastsd (%ecx), %ymm0 -; X32-NEXT: movl %edx, (%eax) -; X32-NEXT: movl %esi, 4(%eax) -; X32-NEXT: popl %esi -; X32-NEXT: retl +; X86-LABEL: A2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: pushl %esi +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %esi, -8 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl (%ecx), %edx +; X86-NEXT: movl 4(%ecx), %esi +; X86-NEXT: vbroadcastsd (%ecx), %ymm0 +; X86-NEXT: movl %edx, (%eax) +; X86-NEXT: movl %esi, 4(%eax) +; X86-NEXT: popl %esi +; X86-NEXT: retl ; ; X64-LABEL: A2: ; X64: ## %bb.0: ## %entry @@ -57,11 +57,11 @@ entry: } define <8 x i32> @B(i32* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: B: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: B: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: B: ; X64: ## %bb.0: ## %entry @@ -77,11 +77,11 @@ entry: } define <8 x i32> @B2(i32* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: B2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: B2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: B2: ; X64: ## %bb.0: ## %entry @@ -101,16 +101,16 @@ entry: } define <8 x i32> @B3(i32* %ptr, i32* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: B3: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: movl (%ecx), %ecx -; X32-NEXT: movl %ecx, (%eax) -; X32-NEXT: vmovd %ecx, %xmm0 -; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0] -; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: B3: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl (%ecx), %ecx +; X86-NEXT: movl %ecx, (%eax) +; X86-NEXT: vmovd %ecx, %xmm0 +; X86-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0] +; X86-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: B3: ; X64: ## %bb.0: ## %entry @@ -135,11 +135,11 @@ entry: } define <4 x double> @C(double* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: C: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: C: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: C: ; X64: ## %bb.0: ## %entry @@ -155,13 +155,13 @@ entry: } define <4 x double> @C2(double* %ptr, double* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: C2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vbroadcastsd (%ecx), %ymm0 -; X32-NEXT: vmovlps %xmm0, (%eax) -; X32-NEXT: retl +; X86-LABEL: C2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vbroadcastsd (%ecx), %ymm0 +; X86-NEXT: vmovlps %xmm0, (%eax) +; X86-NEXT: retl ; ; X64-LABEL: C2: ; X64: ## %bb.0: ## %entry @@ -179,11 +179,11 @@ entry: } define <8 x float> @D(float* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: D: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: D: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: D: ; X64: ## %bb.0: ## %entry @@ -199,11 +199,11 @@ entry: } define <8 x float> @D2(float* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: D2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: D2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: D2: ; X64: ## %bb.0: ## %entry @@ -223,13 +223,13 @@ entry: } define <8 x float> @D3(float* %ptr, float* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: D3: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vbroadcastss (%ecx), %ymm0 -; X32-NEXT: vmovss %xmm0, (%eax) -; X32-NEXT: retl +; X86-LABEL: D3: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vbroadcastss (%ecx), %ymm0 +; X86-NEXT: vmovss %xmm0, (%eax) +; X86-NEXT: retl ; ; X64-LABEL: D3: ; X64: ## %bb.0: ## %entry @@ -253,11 +253,11 @@ entry: ;;;; 128-bit versions define <4 x float> @e(float* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: e: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: e: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: e: ; X64: ## %bb.0: ## %entry @@ -273,13 +273,13 @@ entry: } define <4 x float> @e2(float* %ptr, float* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: e2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vbroadcastss (%ecx), %xmm0 -; X32-NEXT: vmovss %xmm0, (%eax) -; X32-NEXT: retl +; X86-LABEL: e2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vbroadcastss (%ecx), %xmm0 +; X86-NEXT: vmovss %xmm0, (%eax) +; X86-NEXT: retl ; ; X64-LABEL: e2: ; X64: ## %bb.0: ## %entry @@ -298,10 +298,10 @@ entry: ; Don't broadcast constants on pre-AVX2 hardware. define <4 x float> @_e2(float* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: _e2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: vmovaps {{.*#+}} xmm0 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] -; X32-NEXT: retl +; X86-LABEL: _e2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: vmovaps {{.*#+}} xmm0 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] +; X86-NEXT: retl ; ; X64-LABEL: _e2: ; X64: ## %bb.0: ## %entry @@ -317,11 +317,11 @@ entry: define <4 x i32> @F(i32* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: F: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: F: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: F: ; X64: ## %bb.0: ## %entry @@ -337,15 +337,15 @@ entry: } define <4 x i32> @F2(i32* %ptr, i32* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: F2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: movl (%ecx), %ecx -; X32-NEXT: movl %ecx, (%eax) -; X32-NEXT: vmovd %ecx, %xmm0 -; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0] -; X32-NEXT: retl +; X86-LABEL: F2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl (%ecx), %ecx +; X86-NEXT: movl %ecx, (%eax) +; X86-NEXT: vmovd %ecx, %xmm0 +; X86-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0] +; X86-NEXT: retl ; ; X64-LABEL: F2: ; X64: ## %bb.0: ## %entry @@ -367,11 +367,11 @@ entry: ; FIXME: Pointer adjusted broadcasts define <4 x i32> @load_splat_4i32_4i32_1111(<4 x i32>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4i32_4i32_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpermilps {{.*#+}} xmm0 = mem[1,1,1,1] -; X32-NEXT: retl +; X86-LABEL: load_splat_4i32_4i32_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpermilps {{.*#+}} xmm0 = mem[1,1,1,1] +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4i32_4i32_1111: ; X64: ## %bb.0: ## %entry @@ -384,11 +384,11 @@ entry: } define <8 x i32> @load_splat_8i32_4i32_33333333(<4 x i32>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_8i32_4i32_33333333: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss 12(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_8i32_4i32_33333333: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss 12(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_8i32_4i32_33333333: ; X64: ## %bb.0: ## %entry @@ -401,11 +401,11 @@ entry: } define <8 x i32> @load_splat_8i32_8i32_55555555(<8 x i32>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_8i32_8i32_55555555: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss 20(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_8i32_8i32_55555555: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss 20(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_8i32_8i32_55555555: ; X64: ## %bb.0: ## %entry @@ -418,11 +418,11 @@ entry: } define <4 x float> @load_splat_4f32_4f32_1111(<4 x float>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4f32_4f32_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss 4(%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4f32_4f32_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss 4(%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4f32_4f32_1111: ; X64: ## %bb.0: ## %entry @@ -435,11 +435,11 @@ entry: } define <8 x float> @load_splat_8f32_4f32_33333333(<4 x float>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_8f32_4f32_33333333: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss 12(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_8f32_4f32_33333333: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss 12(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_8f32_4f32_33333333: ; X64: ## %bb.0: ## %entry @@ -452,11 +452,11 @@ entry: } define <8 x float> @load_splat_8f32_8f32_55555555(<8 x float>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_8f32_8f32_55555555: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss 20(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_8f32_8f32_55555555: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss 20(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_8f32_8f32_55555555: ; X64: ## %bb.0: ## %entry @@ -469,11 +469,11 @@ entry: } define <2 x i64> @load_splat_2i64_2i64_1111(<2 x i64>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_2i64_2i64_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpermilps {{.*#+}} xmm0 = mem[2,3,2,3] -; X32-NEXT: retl +; X86-LABEL: load_splat_2i64_2i64_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpermilps {{.*#+}} xmm0 = mem[2,3,2,3] +; X86-NEXT: retl ; ; X64-LABEL: load_splat_2i64_2i64_1111: ; X64: ## %bb.0: ## %entry @@ -486,11 +486,11 @@ entry: } define <4 x i64> @load_splat_4i64_2i64_1111(<2 x i64>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4i64_2i64_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd 8(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4i64_2i64_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd 8(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4i64_2i64_1111: ; X64: ## %bb.0: ## %entry @@ -503,11 +503,11 @@ entry: } define <4 x i64> @load_splat_4i64_4i64_2222(<4 x i64>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4i64_4i64_2222: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd 16(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4i64_4i64_2222: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd 16(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4i64_4i64_2222: ; X64: ## %bb.0: ## %entry @@ -520,11 +520,11 @@ entry: } define <2 x double> @load_splat_2f64_2f64_1111(<2 x double>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_2f64_2f64_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: load_splat_2f64_2f64_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: retl ; ; X64-LABEL: load_splat_2f64_2f64_1111: ; X64: ## %bb.0: ## %entry @@ -537,11 +537,11 @@ entry: } define <4 x double> @load_splat_4f64_2f64_1111(<2 x double>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4f64_2f64_1111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd 8(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4f64_2f64_1111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd 8(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4f64_2f64_1111: ; X64: ## %bb.0: ## %entry @@ -554,11 +554,11 @@ entry: } define <4 x double> @load_splat_4f64_4f64_2222(<4 x double>* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_4f64_4f64_2222: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd 16(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4f64_4f64_2222: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd 16(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_4f64_4f64_2222: ; X64: ## %bb.0: ## %entry @@ -573,11 +573,11 @@ entry: ; Unsupported vbroadcasts define <2 x i64> @G(i64* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: G: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: G: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: retl ; ; X64-LABEL: G: ; X64: ## %bb.0: ## %entry @@ -591,20 +591,20 @@ entry: } define <2 x i64> @G2(i64* %ptr, i64* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: G2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: pushl %esi -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %esi, -8 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: movl (%ecx), %edx -; X32-NEXT: movl 4(%ecx), %esi -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: movl %edx, (%eax) -; X32-NEXT: movl %esi, 4(%eax) -; X32-NEXT: popl %esi -; X32-NEXT: retl +; X86-LABEL: G2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: pushl %esi +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %esi, -8 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: movl (%ecx), %edx +; X86-NEXT: movl 4(%ecx), %esi +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: movl %edx, (%eax) +; X86-NEXT: movl %esi, 4(%eax) +; X86-NEXT: popl %esi +; X86-NEXT: retl ; ; X64-LABEL: G2: ; X64: ## %bb.0: ## %entry @@ -622,10 +622,10 @@ entry: } define <4 x i32> @H(<4 x i32> %a) { -; X32-LABEL: H: -; X32: ## %bb.0: ## %entry -; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[1,1,1,1] -; X32-NEXT: retl +; X86-LABEL: H: +; X86: ## %bb.0: ## %entry +; X86-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[1,1,1,1] +; X86-NEXT: retl ; ; X64-LABEL: H: ; X64: ## %bb.0: ## %entry @@ -637,11 +637,11 @@ entry: } define <2 x double> @I(double* %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: I: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: I: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: retl ; ; X64-LABEL: I: ; X64: ## %bb.0: ## %entry @@ -655,13 +655,13 @@ entry: } define <2 x double> @I2(double* %ptr, double* %ptr2) nounwind uwtable readnone ssp { -; X32-LABEL: I2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: vmovlps %xmm0, (%eax) -; X32-NEXT: retl +; X86-LABEL: I2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: vmovlps %xmm0, (%eax) +; X86-NEXT: retl ; ; X64-LABEL: I2: ; X64: ## %bb.0: ## %entry @@ -677,14 +677,14 @@ entry: } define <4 x float> @_RR(float* %ptr, i32* %k) nounwind uwtable readnone ssp { -; X32-LABEL: _RR: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vbroadcastss (%ecx), %xmm0 -; X32-NEXT: movl (%eax), %eax -; X32-NEXT: movl %eax, (%eax) -; X32-NEXT: retl +; X86-LABEL: _RR: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vbroadcastss (%ecx), %xmm0 +; X86-NEXT: movl (%eax), %eax +; X86-NEXT: movl %eax, (%eax) +; X86-NEXT: retl ; ; X64-LABEL: _RR: ; X64: ## %bb.0: ## %entry @@ -705,11 +705,11 @@ entry: } define <4 x float> @_RR2(float* %ptr, i32* %k) nounwind uwtable readnone ssp { -; X32-LABEL: _RR2: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: _RR2: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _RR2: ; X64: ## %bb.0: ## %entry @@ -727,11 +727,11 @@ entry: ; (via the insertelements). define <8 x float> @splat_concat1(float* %p) { -; X32-LABEL: splat_concat1: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat1: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat1: ; X64: ## %bb.0: @@ -747,11 +747,11 @@ define <8 x float> @splat_concat1(float* %p) { } define <8 x float> @splat_concat2(float* %p) { -; X32-LABEL: splat_concat2: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat2: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat2: ; X64: ## %bb.0: @@ -771,11 +771,11 @@ define <8 x float> @splat_concat2(float* %p) { } define <4 x double> @splat_concat3(double* %p) { -; X32-LABEL: splat_concat3: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat3: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat3: ; X64: ## %bb.0: @@ -789,11 +789,11 @@ define <4 x double> @splat_concat3(double* %p) { } define <4 x double> @splat_concat4(double* %p) { -; X32-LABEL: splat_concat4: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat4: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat4: ; X64: ## %bb.0: @@ -810,11 +810,11 @@ define <4 x double> @splat_concat4(double* %p) { ; PR34041 define <4 x double> @broadcast_shuffle_1000(double* %p) { -; X32-LABEL: broadcast_shuffle_1000: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: broadcast_shuffle_1000: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: broadcast_shuffle_1000: ; X64: ## %bb.0: @@ -827,11 +827,11 @@ define <4 x double> @broadcast_shuffle_1000(double* %p) { } define <4 x double> @broadcast_shuffle1032(double* %p) { -; X32-LABEL: broadcast_shuffle1032: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: broadcast_shuffle1032: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: broadcast_shuffle1032: ; X64: ## %bb.0: @@ -845,15 +845,15 @@ define <4 x double> @broadcast_shuffle1032(double* %p) { } define void @broadcast_v16i32(i32* %a, <16 x i32>* %b) { -; X32-LABEL: broadcast_v16i32: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vbroadcastss (%ecx), %ymm0 -; X32-NEXT: vmovups %ymm0, 32(%eax) -; X32-NEXT: vmovups %ymm0, (%eax) -; X32-NEXT: vzeroupper -; X32-NEXT: retl +; X86-LABEL: broadcast_v16i32: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vbroadcastss (%ecx), %ymm0 +; X86-NEXT: vmovups %ymm0, 32(%eax) +; X86-NEXT: vmovups %ymm0, (%eax) +; X86-NEXT: vzeroupper +; X86-NEXT: retl ; ; X64-LABEL: broadcast_v16i32: ; X64: ## %bb.0: @@ -874,21 +874,21 @@ define void @broadcast_v16i32(i32* %a, <16 x i32>* %b) { ; Broadcast scale factor for xyz vector - slp will have vectorized xy. ; define double @broadcast_scale_xyz(double* nocapture readonly, double* nocapture readonly) nounwind { -; X32-LABEL: broadcast_scale_xyz: -; X32: ## %bb.0: -; X32-NEXT: subl $12, %esp -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: vmulpd (%eax), %xmm0, %xmm1 -; X32-NEXT: vmulsd 16(%eax), %xmm0, %xmm0 -; X32-NEXT: vpermilpd {{.*#+}} xmm2 = xmm1[1,0] -; X32-NEXT: vaddsd %xmm2, %xmm1, %xmm1 -; X32-NEXT: vaddsd %xmm1, %xmm0, %xmm0 -; X32-NEXT: vmovsd %xmm0, (%esp) -; X32-NEXT: fldl (%esp) -; X32-NEXT: addl $12, %esp -; X32-NEXT: retl +; X86-LABEL: broadcast_scale_xyz: +; X86: ## %bb.0: +; X86-NEXT: subl $12, %esp +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: vmulpd (%eax), %xmm0, %xmm1 +; X86-NEXT: vmulsd 16(%eax), %xmm0, %xmm0 +; X86-NEXT: vpermilpd {{.*#+}} xmm2 = xmm1[1,0] +; X86-NEXT: vaddsd %xmm2, %xmm1, %xmm1 +; X86-NEXT: vaddsd %xmm1, %xmm0, %xmm0 +; X86-NEXT: vmovsd %xmm0, (%esp) +; X86-NEXT: fldl (%esp) +; X86-NEXT: addl $12, %esp +; X86-NEXT: retl ; ; X64-LABEL: broadcast_scale_xyz: ; X64: ## %bb.0: @@ -919,24 +919,24 @@ define double @broadcast_scale_xyz(double* nocapture readonly, double* nocapture ; When VBROADCAST replaces an existing load, ensure it still respects lifetime dependencies. ; define float @broadcast_lifetime() nounwind { -; X32-LABEL: broadcast_lifetime: -; X32: ## %bb.0: -; X32-NEXT: pushl %esi -; X32-NEXT: subl $40, %esp -; X32-NEXT: leal {{[0-9]+}}(%esp), %esi -; X32-NEXT: movl %esi, (%esp) -; X32-NEXT: calll _gfunc -; X32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero -; X32-NEXT: vmovss %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) ## 4-byte Spill -; X32-NEXT: movl %esi, (%esp) -; X32-NEXT: calll _gfunc -; X32-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero -; X32-NEXT: vsubss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0, %xmm0 ## 4-byte Folded Reload -; X32-NEXT: vmovss %xmm0, {{[0-9]+}}(%esp) -; X32-NEXT: flds {{[0-9]+}}(%esp) -; X32-NEXT: addl $40, %esp -; X32-NEXT: popl %esi -; X32-NEXT: retl +; X86-LABEL: broadcast_lifetime: +; X86: ## %bb.0: +; X86-NEXT: pushl %esi +; X86-NEXT: subl $40, %esp +; X86-NEXT: leal {{[0-9]+}}(%esp), %esi +; X86-NEXT: movl %esi, (%esp) +; X86-NEXT: calll _gfunc +; X86-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; X86-NEXT: vmovss %xmm0, {{[-0-9]+}}(%e{{[sb]}}p) ## 4-byte Spill +; X86-NEXT: movl %esi, (%esp) +; X86-NEXT: calll _gfunc +; X86-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; X86-NEXT: vsubss {{[-0-9]+}}(%e{{[sb]}}p), %xmm0, %xmm0 ## 4-byte Folded Reload +; X86-NEXT: vmovss %xmm0, {{[0-9]+}}(%esp) +; X86-NEXT: flds {{[0-9]+}}(%esp) +; X86-NEXT: addl $40, %esp +; X86-NEXT: popl %esi +; X86-NEXT: retl ; ; X64-LABEL: broadcast_lifetime: ; X64: ## %bb.0: @@ -973,14 +973,14 @@ define float @broadcast_lifetime() nounwind { } define <8 x i16> @broadcast_x86_mmx(x86_mmx %tmp) nounwind { -; X32-LABEL: broadcast_x86_mmx: -; X32: ## %bb.0: ## %bb -; X32-NEXT: subl $12, %esp -; X32-NEXT: movq %mm0, (%esp) -; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero -; X32-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[0,1,0,1] -; X32-NEXT: addl $12, %esp -; X32-NEXT: retl +; X86-LABEL: broadcast_x86_mmx: +; X86: ## %bb.0: ## %bb +; X86-NEXT: subl $12, %esp +; X86-NEXT: movq %mm0, (%esp) +; X86-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; X86-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[0,1,0,1] +; X86-NEXT: addl $12, %esp +; X86-NEXT: retl ; ; X64-LABEL: broadcast_x86_mmx: ; X64: ## %bb.0: ## %bb -- 2.7.4