From 92ce50ba21597065e38d188b42e92f349ce6faee Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 22 Jan 2023 15:19:17 +0000 Subject: [PATCH] [X86] avx2-vbroadcast.ll - use X86 check prefix instead of X32 We try to use X32 for tests on gnux32 triples --- llvm/test/CodeGen/X86/avx2-vbroadcast.ll | 828 +++++++++++++++---------------- 1 file changed, 414 insertions(+), 414 deletions(-) diff --git a/llvm/test/CodeGen/X86/avx2-vbroadcast.ll b/llvm/test/CodeGen/X86/avx2-vbroadcast.ll index d7fb15e..70d99e7 100644 --- a/llvm/test/CodeGen/X86/avx2-vbroadcast.ll +++ b/llvm/test/CodeGen/X86/avx2-vbroadcast.ll @@ -1,15 +1,15 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx2,+mmx | FileCheck %s --check-prefix=X32 --check-prefix=X32-AVX2 -; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx2,+mmx | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX2 -; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx512vl,+avx512dq,+mmx | FileCheck %s --check-prefix=X32 --check-prefix=X32-AVX512VL -; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx512vl,+avx512dq,+mmx | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX512VL +; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx2,+mmx | FileCheck %s --check-prefixes=X86,X86-AVX2 +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx2,+mmx | FileCheck %s --check-prefixes=X64,X64-AVX2 +; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=+avx512vl,+avx512dq,+mmx | FileCheck %s --check-prefixes=X86,X86-AVX512VL +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+avx512vl,+avx512dq,+mmx | FileCheck %s --check-prefixes=X64,X64-AVX512VL define <16 x i8> @BB16(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: BB16: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastb (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: BB16: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastb (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: BB16: ; X64: ## %bb.0: ## %entry @@ -37,11 +37,11 @@ entry: } define <32 x i8> @BB32(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: BB32: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastb (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: BB32: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastb (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: BB32: ; X64: ## %bb.0: ## %entry @@ -86,11 +86,11 @@ entry: } define <8 x i16> @W16(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: W16: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastw (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: W16: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastw (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: W16: ; X64: ## %bb.0: ## %entry @@ -110,11 +110,11 @@ entry: } define <16 x i16> @WW16(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: WW16: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastw (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: WW16: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastw (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: WW16: ; X64: ## %bb.0: ## %entry @@ -142,11 +142,11 @@ entry: } define <4 x i32> @D32(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: D32: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: D32: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: D32: ; X64: ## %bb.0: ## %entry @@ -162,11 +162,11 @@ entry: } define <8 x i32> @DD32(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: DD32: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastss (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: DD32: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastss (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: DD32: ; X64: ## %bb.0: ## %entry @@ -186,11 +186,11 @@ entry: } define <2 x i64> @Q64(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: Q64: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: Q64: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: retl ; ; X64-LABEL: Q64: ; X64: ## %bb.0: ## %entry @@ -204,11 +204,11 @@ entry: } define <4 x i64> @QQ64(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: QQ64: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: QQ64: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: QQ64: ; X64: ## %bb.0: ## %entry @@ -224,11 +224,11 @@ entry: } define <8 x i16> @broadcast_mem_v4i16_v8i16(ptr %ptr) { -; X32-LABEL: broadcast_mem_v4i16_v8i16: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: broadcast_mem_v4i16_v8i16: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: retl ; ; X64-LABEL: broadcast_mem_v4i16_v8i16: ; X64: ## %bb.0: @@ -240,11 +240,11 @@ define <8 x i16> @broadcast_mem_v4i16_v8i16(ptr %ptr) { } define <16 x i16> @broadcast_mem_v4i16_v16i16(ptr %ptr) { -; X32-LABEL: broadcast_mem_v4i16_v16i16: -; X32: ## %bb.0: -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vbroadcastsd (%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: broadcast_mem_v4i16_v16i16: +; X86: ## %bb.0: +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vbroadcastsd (%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: broadcast_mem_v4i16_v16i16: ; X64: ## %bb.0: @@ -258,11 +258,11 @@ define <16 x i16> @broadcast_mem_v4i16_v16i16(ptr %ptr) { ; FIXME: Pointer adjusted broadcasts define <16 x i8> @load_splat_16i8_16i8_1111111111111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_16i8_16i8_1111111111111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastb 1(%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_16i8_16i8_1111111111111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastb 1(%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_16i8_16i8_1111111111111111: ; X64: ## %bb.0: ## %entry @@ -275,11 +275,11 @@ entry: } define <32 x i8> @load_splat_32i8_16i8_11111111111111111111111111111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_32i8_16i8_11111111111111111111111111111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastb 1(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_32i8_16i8_11111111111111111111111111111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastb 1(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_32i8_16i8_11111111111111111111111111111111: ; X64: ## %bb.0: ## %entry @@ -292,11 +292,11 @@ entry: } define <32 x i8> @load_splat_32i8_32i8_11111111111111111111111111111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_32i8_32i8_11111111111111111111111111111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastb 1(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_32i8_32i8_11111111111111111111111111111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastb 1(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_32i8_32i8_11111111111111111111111111111111: ; X64: ## %bb.0: ## %entry @@ -309,11 +309,11 @@ entry: } define <8 x i16> @load_splat_8i16_8i16_11111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_8i16_8i16_11111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastw 2(%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_8i16_8i16_11111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastw 2(%eax), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_8i16_8i16_11111111: ; X64: ## %bb.0: ## %entry @@ -326,11 +326,11 @@ entry: } define <16 x i16> @load_splat_16i16_8i16_1111111111111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_16i16_8i16_1111111111111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastw 2(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_16i16_8i16_1111111111111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastw 2(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_16i16_8i16_1111111111111111: ; X64: ## %bb.0: ## %entry @@ -343,11 +343,11 @@ entry: } define <16 x i16> @load_splat_16i16_16i16_1111111111111111(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: load_splat_16i16_16i16_1111111111111111: -; X32: ## %bb.0: ## %entry -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vpbroadcastw 2(%eax), %ymm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_16i16_16i16_1111111111111111: +; X86: ## %bb.0: ## %entry +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vpbroadcastw 2(%eax), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: load_splat_16i16_16i16_1111111111111111: ; X64: ## %bb.0: ## %entry @@ -360,11 +360,11 @@ entry: } define <4 x i32> @load_splat_4i32_4i32_1111(ptr %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: vbroadcastss 4(%eax), %xmm0 -; X32-NEXT: retl +; X86-LABEL: load_splat_4i32_4i32_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_4i32_4i32_1111: ; X64: ## %bb.0: ## %entry @@ -377,11 +377,11 @@ entry: } define <8 x i32> @load_splat_8i32_4i32_33333333(ptr %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 @@ -394,11 +394,11 @@ entry: } define <8 x i32> @load_splat_8i32_8i32_55555555(ptr %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 @@ -411,11 +411,11 @@ entry: } define <4 x float> @load_splat_4f32_4f32_1111(ptr %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 @@ -428,11 +428,11 @@ entry: } define <8 x float> @load_splat_8f32_4f32_33333333(ptr %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 @@ -445,11 +445,11 @@ entry: } define <8 x float> @load_splat_8f32_8f32_55555555(ptr %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 @@ -462,11 +462,11 @@ entry: } define <2 x i64> @load_splat_2i64_2i64_1111(ptr %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: vmovddup {{.*#+}} xmm0 = mem[0,0] -; X32-NEXT: retl +; X86-LABEL: load_splat_2i64_2i64_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_2i64_2i64_1111: ; X64: ## %bb.0: ## %entry @@ -479,11 +479,11 @@ entry: } define <4 x i64> @load_splat_4i64_2i64_1111(ptr %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 @@ -496,11 +496,11 @@ entry: } define <4 x i64> @load_splat_4i64_4i64_2222(ptr %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 @@ -513,11 +513,11 @@ entry: } define <2 x double> @load_splat_2f64_2f64_1111(ptr %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 @@ -530,11 +530,11 @@ entry: } define <4 x double> @load_splat_4f64_2f64_1111(ptr %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 @@ -547,11 +547,11 @@ entry: } define <4 x double> @load_splat_4f64_4f64_2222(ptr %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 @@ -566,11 +566,11 @@ entry: ; make sure that we still don't support broadcast double into 128-bit vector ; this used to crash define <2 x double> @I(ptr %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 @@ -584,11 +584,11 @@ entry: } define <8 x i32> @V111(<8 x i32> %in) nounwind uwtable readnone ssp { -; X32-AVX2-LABEL: V111: -; X32-AVX2: ## %bb.0: ## %entry -; X32-AVX2-NEXT: vpbroadcastd {{.*#+}} ymm1 = [2,2,2,2,2,2,2,2] -; X32-AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0 -; X32-AVX2-NEXT: retl +; X86-AVX2-LABEL: V111: +; X86-AVX2: ## %bb.0: ## %entry +; X86-AVX2-NEXT: vpbroadcastd {{.*#+}} ymm1 = [2,2,2,2,2,2,2,2] +; X86-AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0 +; X86-AVX2-NEXT: retl ; ; X64-AVX2-LABEL: V111: ; X64-AVX2: ## %bb.0: ## %entry @@ -596,10 +596,10 @@ define <8 x i32> @V111(<8 x i32> %in) nounwind uwtable readnone ssp { ; X64-AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0 ; X64-AVX2-NEXT: retq ; -; X32-AVX512VL-LABEL: V111: -; X32-AVX512VL: ## %bb.0: ## %entry -; X32-AVX512VL-NEXT: vpaddd {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0 -; X32-AVX512VL-NEXT: retl +; X86-AVX512VL-LABEL: V111: +; X86-AVX512VL: ## %bb.0: ## %entry +; X86-AVX512VL-NEXT: vpaddd {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0 +; X86-AVX512VL-NEXT: retl ; ; X64-AVX512VL-LABEL: V111: ; X64-AVX512VL: ## %bb.0: ## %entry @@ -611,11 +611,11 @@ entry: } define <8 x float> @V113(<8 x float> %in) nounwind uwtable readnone ssp { -; X32-AVX2-LABEL: V113: -; X32-AVX2: ## %bb.0: ## %entry -; X32-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] -; X32-AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0 -; X32-AVX2-NEXT: retl +; X86-AVX2-LABEL: V113: +; X86-AVX2: ## %bb.0: ## %entry +; X86-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] +; X86-AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0 +; X86-AVX2-NEXT: retl ; ; X64-AVX2-LABEL: V113: ; X64-AVX2: ## %bb.0: ## %entry @@ -623,10 +623,10 @@ define <8 x float> @V113(<8 x float> %in) nounwind uwtable readnone ssp { ; X64-AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0 ; X64-AVX2-NEXT: retq ; -; X32-AVX512VL-LABEL: V113: -; X32-AVX512VL: ## %bb.0: ## %entry -; X32-AVX512VL-NEXT: vaddps {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0 -; X32-AVX512VL-NEXT: retl +; X86-AVX512VL-LABEL: V113: +; X86-AVX512VL: ## %bb.0: ## %entry +; X86-AVX512VL-NEXT: vaddps {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0 +; X86-AVX512VL-NEXT: retl ; ; X64-AVX512VL-LABEL: V113: ; X64-AVX512VL: ## %bb.0: ## %entry @@ -638,10 +638,10 @@ entry: } define <4 x float> @_e2(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: _e2: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{.*#+}} xmm0 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] -; X32-NEXT: retl +; X86-LABEL: _e2: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{.*#+}} xmm0 = [-7.8125E-3,-7.8125E-3,-7.8125E-3,-7.8125E-3] +; X86-NEXT: retl ; ; X64-LABEL: _e2: ; X64: ## %bb.0: @@ -655,10 +655,10 @@ define <4 x float> @_e2(ptr %ptr) nounwind uwtable readnone ssp { } define <8 x i8> @_e4(ptr %ptr) nounwind uwtable readnone ssp { -; X32-LABEL: _e4: -; X32: ## %bb.0: -; X32-NEXT: vmovaps {{.*#+}} xmm0 = <52,52,52,52,52,52,52,52,u,u,u,u,u,u,u,u> -; X32-NEXT: retl +; X86-LABEL: _e4: +; X86: ## %bb.0: +; X86-NEXT: vmovaps {{.*#+}} xmm0 = <52,52,52,52,52,52,52,52,u,u,u,u,u,u,u,u> +; X86-NEXT: retl ; ; X64-LABEL: _e4: ; X64: ## %bb.0: @@ -676,17 +676,17 @@ define <8 x i8> @_e4(ptr %ptr) nounwind uwtable readnone ssp { } define void @crash() nounwind alwaysinline { -; X32-LABEL: crash: -; X32: ## %bb.0: ## %WGLoopsEntry -; X32-NEXT: xorl %eax, %eax -; X32-NEXT: testb %al, %al -; X32-NEXT: je LBB33_1 -; X32-NEXT: ## %bb.2: ## %ret -; X32-NEXT: retl -; X32-NEXT: .p2align 4, 0x90 -; X32-NEXT: LBB33_1: ## %footer329VF -; X32-NEXT: ## =>This Inner Loop Header: Depth=1 -; X32-NEXT: jmp LBB33_1 +; X86-LABEL: crash: +; X86: ## %bb.0: ## %WGLoopsEntry +; X86-NEXT: xorl %eax, %eax +; X86-NEXT: testb %al, %al +; X86-NEXT: je LBB33_1 +; X86-NEXT: ## %bb.2: ## %ret +; X86-NEXT: retl +; X86-NEXT: .p2align 4, 0x90 +; X86-NEXT: LBB33_1: ## %footer329VF +; X86-NEXT: ## =>This Inner Loop Header: Depth=1 +; X86-NEXT: jmp LBB33_1 ; ; X64-LABEL: crash: ; X64: ## %bb.0: ## %WGLoopsEntry @@ -726,10 +726,10 @@ ret: } define <8 x i32> @_inreg0(i32 %scalar) nounwind uwtable readnone ssp { -; X32-LABEL: _inreg0: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg0: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-AVX2-LABEL: _inreg0: ; X64-AVX2: ## %bb.0: @@ -747,10 +747,10 @@ define <8 x i32> @_inreg0(i32 %scalar) nounwind uwtable readnone ssp { } define <8 x float> @_inreg1(float %scalar) nounwind uwtable readnone ssp { -; X32-LABEL: _inreg1: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg1: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg1: ; X64: ## %bb.0: @@ -762,10 +762,10 @@ define <8 x float> @_inreg1(float %scalar) nounwind uwtable readnone ssp { } define <4 x float> @_inreg2(float %scalar) nounwind uwtable readnone ssp { -; X32-LABEL: _inreg2: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{[0-9]+}}(%esp), %xmm0 -; X32-NEXT: retl +; X86-LABEL: _inreg2: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{[0-9]+}}(%esp), %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg2: ; X64: ## %bb.0: @@ -777,10 +777,10 @@ define <4 x float> @_inreg2(float %scalar) nounwind uwtable readnone ssp { } define <4 x double> @_inreg3(double %scalar) nounwind uwtable readnone ssp { -; X32-LABEL: _inreg3: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg3: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg3: ; X64: ## %bb.0: @@ -792,10 +792,10 @@ define <4 x double> @_inreg3(double %scalar) nounwind uwtable readnone ssp { } define <8 x float> @_inreg8xfloat(<8 x float> %a) { -; X32-LABEL: _inreg8xfloat: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg8xfloat: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg8xfloat: ; X64: ## %bb.0: @@ -806,10 +806,10 @@ define <8 x float> @_inreg8xfloat(<8 x float> %a) { } define <4 x float> @_inreg4xfloat(<4 x float> %a) { -; X32-LABEL: _inreg4xfloat: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss %xmm0, %xmm0 -; X32-NEXT: retl +; X86-LABEL: _inreg4xfloat: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss %xmm0, %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg4xfloat: ; X64: ## %bb.0: @@ -820,10 +820,10 @@ define <4 x float> @_inreg4xfloat(<4 x float> %a) { } define <16 x i16> @_inreg16xi16(<16 x i16> %a) { -; X32-LABEL: _inreg16xi16: -; X32: ## %bb.0: -; X32-NEXT: vpbroadcastw %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg16xi16: +; X86: ## %bb.0: +; X86-NEXT: vpbroadcastw %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg16xi16: ; X64: ## %bb.0: @@ -834,10 +834,10 @@ define <16 x i16> @_inreg16xi16(<16 x i16> %a) { } define <8 x i16> @_inreg8xi16(<8 x i16> %a) { -; X32-LABEL: _inreg8xi16: -; X32: ## %bb.0: -; X32-NEXT: vpbroadcastw %xmm0, %xmm0 -; X32-NEXT: retl +; X86-LABEL: _inreg8xi16: +; X86: ## %bb.0: +; X86-NEXT: vpbroadcastw %xmm0, %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg8xi16: ; X64: ## %bb.0: @@ -848,10 +848,10 @@ define <8 x i16> @_inreg8xi16(<8 x i16> %a) { } define <4 x i64> @_inreg4xi64(<4 x i64> %a) { -; X32-LABEL: _inreg4xi64: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastsd %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg4xi64: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastsd %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg4xi64: ; X64: ## %bb.0: @@ -862,10 +862,10 @@ define <4 x i64> @_inreg4xi64(<4 x i64> %a) { } define <2 x i64> @_inreg2xi64(<2 x i64> %a) { -; X32-LABEL: _inreg2xi64: -; X32: ## %bb.0: -; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] -; X32-NEXT: retl +; X86-LABEL: _inreg2xi64: +; X86: ## %bb.0: +; X86-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] +; X86-NEXT: retl ; ; X64-LABEL: _inreg2xi64: ; X64: ## %bb.0: @@ -876,10 +876,10 @@ define <2 x i64> @_inreg2xi64(<2 x i64> %a) { } define <4 x double> @_inreg4xdouble(<4 x double> %a) { -; X32-LABEL: _inreg4xdouble: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastsd %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg4xdouble: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastsd %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg4xdouble: ; X64: ## %bb.0: @@ -890,10 +890,10 @@ define <4 x double> @_inreg4xdouble(<4 x double> %a) { } define <2 x double> @_inreg2xdouble(<2 x double> %a) { -; X32-LABEL: _inreg2xdouble: -; X32: ## %bb.0: -; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] -; X32-NEXT: retl +; X86-LABEL: _inreg2xdouble: +; X86: ## %bb.0: +; X86-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] +; X86-NEXT: retl ; ; X64-LABEL: _inreg2xdouble: ; X64: ## %bb.0: @@ -904,10 +904,10 @@ define <2 x double> @_inreg2xdouble(<2 x double> %a) { } define <8 x i32> @_inreg8xi32(<8 x i32> %a) { -; X32-LABEL: _inreg8xi32: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg8xi32: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg8xi32: ; X64: ## %bb.0: @@ -918,10 +918,10 @@ define <8 x i32> @_inreg8xi32(<8 x i32> %a) { } define <4 x i32> @_inreg4xi32(<4 x i32> %a) { -; X32-LABEL: _inreg4xi32: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss %xmm0, %xmm0 -; X32-NEXT: retl +; X86-LABEL: _inreg4xi32: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss %xmm0, %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg4xi32: ; X64: ## %bb.0: @@ -932,10 +932,10 @@ define <4 x i32> @_inreg4xi32(<4 x i32> %a) { } define <32 x i8> @_inreg32xi8(<32 x i8> %a) { -; X32-LABEL: _inreg32xi8: -; X32: ## %bb.0: -; X32-NEXT: vpbroadcastb %xmm0, %ymm0 -; X32-NEXT: retl +; X86-LABEL: _inreg32xi8: +; X86: ## %bb.0: +; X86-NEXT: vpbroadcastb %xmm0, %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg32xi8: ; X64: ## %bb.0: @@ -946,10 +946,10 @@ define <32 x i8> @_inreg32xi8(<32 x i8> %a) { } define <16 x i8> @_inreg16xi8(<16 x i8> %a) { -; X32-LABEL: _inreg16xi8: -; X32: ## %bb.0: -; X32-NEXT: vpbroadcastb %xmm0, %xmm0 -; X32-NEXT: retl +; X86-LABEL: _inreg16xi8: +; X86: ## %bb.0: +; X86-NEXT: vpbroadcastb %xmm0, %xmm0 +; X86-NEXT: retl ; ; X64-LABEL: _inreg16xi8: ; X64: ## %bb.0: @@ -964,10 +964,10 @@ define <16 x i8> @_inreg16xi8(<16 x i8> %a) { ; (via the insertelements). define <8 x float> @splat_concat1(float %f) { -; X32-LABEL: splat_concat1: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat1: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat1: ; X64: ## %bb.0: @@ -982,10 +982,10 @@ define <8 x float> @splat_concat1(float %f) { } define <8 x float> @splat_concat2(float %f) { -; X32-LABEL: splat_concat2: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat2: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastss {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat2: ; X64: ## %bb.0: @@ -1004,10 +1004,10 @@ define <8 x float> @splat_concat2(float %f) { } define <4 x double> @splat_concat3(double %d) { -; X32-LABEL: splat_concat3: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat3: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat3: ; X64: ## %bb.0: @@ -1020,10 +1020,10 @@ define <4 x double> @splat_concat3(double %d) { } define <4 x double> @splat_concat4(double %d) { -; X32-LABEL: splat_concat4: -; X32: ## %bb.0: -; X32-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 -; X32-NEXT: retl +; X86-LABEL: splat_concat4: +; X86: ## %bb.0: +; X86-NEXT: vbroadcastsd {{[0-9]+}}(%esp), %ymm0 +; X86-NEXT: retl ; ; X64-LABEL: splat_concat4: ; X64: ## %bb.0: @@ -1038,15 +1038,15 @@ define <4 x double> @splat_concat4(double %d) { } define void @broadcast_v16i32(ptr %a, ptr %b) { -; X32-AVX2-LABEL: broadcast_v16i32: -; X32-AVX2: ## %bb.0: -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-AVX2-NEXT: vbroadcastss (%ecx), %ymm0 -; X32-AVX2-NEXT: vmovups %ymm0, 32(%eax) -; X32-AVX2-NEXT: vmovups %ymm0, (%eax) -; X32-AVX2-NEXT: vzeroupper -; X32-AVX2-NEXT: retl +; X86-AVX2-LABEL: broadcast_v16i32: +; X86-AVX2: ## %bb.0: +; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-AVX2-NEXT: vbroadcastss (%ecx), %ymm0 +; X86-AVX2-NEXT: vmovups %ymm0, 32(%eax) +; X86-AVX2-NEXT: vmovups %ymm0, (%eax) +; X86-AVX2-NEXT: vzeroupper +; X86-AVX2-NEXT: retl ; ; X64-AVX2-LABEL: broadcast_v16i32: ; X64-AVX2: ## %bb.0: @@ -1056,14 +1056,14 @@ define void @broadcast_v16i32(ptr %a, ptr %b) { ; X64-AVX2-NEXT: vzeroupper ; X64-AVX2-NEXT: retq ; -; X32-AVX512VL-LABEL: broadcast_v16i32: -; X32-AVX512VL: ## %bb.0: -; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X32-AVX512VL-NEXT: vbroadcastss (%ecx), %zmm0 -; X32-AVX512VL-NEXT: vmovups %zmm0, (%eax) -; X32-AVX512VL-NEXT: vzeroupper -; X32-AVX512VL-NEXT: retl +; X86-AVX512VL-LABEL: broadcast_v16i32: +; X86-AVX512VL: ## %bb.0: +; X86-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx +; X86-AVX512VL-NEXT: vbroadcastss (%ecx), %zmm0 +; X86-AVX512VL-NEXT: vmovups %zmm0, (%eax) +; X86-AVX512VL-NEXT: vzeroupper +; X86-AVX512VL-NEXT: retl ; ; X64-AVX512VL-LABEL: broadcast_v16i32: ; X64-AVX512VL: ## %bb.0: @@ -1088,18 +1088,18 @@ define void @broadcast_v16i32(ptr %a, ptr %b) { ; Those test cases exerce the latter. define void @isel_crash_16b(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_16b: -; X32: ## %bb.0: ## %eintry -; X32-NEXT: subl $60, %esp -; X32-NEXT: .cfi_def_cfa_offset 64 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %xmm0, (%esp) -; X32-NEXT: vpbroadcastb (%eax), %xmm1 -; X32-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp) -; X32-NEXT: addl $60, %esp -; X32-NEXT: retl +; X86-LABEL: isel_crash_16b: +; X86: ## %bb.0: ## %eintry +; X86-NEXT: subl $60, %esp +; X86-NEXT: .cfi_def_cfa_offset 64 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %xmm0, (%esp) +; X86-NEXT: vpbroadcastb (%eax), %xmm1 +; X86-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp) +; X86-NEXT: addl $60, %esp +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_16b: ; X64: ## %bb.0: ## %eintry @@ -1125,25 +1125,25 @@ eintry: } define void @isel_crash_32b(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_32b: -; X32: ## %bb.0: ## %eintry -; X32-NEXT: pushl %ebp -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %ebp, -8 -; X32-NEXT: movl %esp, %ebp -; X32-NEXT: .cfi_def_cfa_register %ebp -; X32-NEXT: andl $-32, %esp -; X32-NEXT: subl $128, %esp -; X32-NEXT: movl 8(%ebp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %ymm0, (%esp) -; X32-NEXT: vpbroadcastb (%eax), %ymm1 -; X32-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp) -; X32-NEXT: movl %ebp, %esp -; X32-NEXT: popl %ebp -; X32-NEXT: vzeroupper -; X32-NEXT: retl +; X86-LABEL: isel_crash_32b: +; X86: ## %bb.0: ## %eintry +; X86-NEXT: pushl %ebp +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %ebp, -8 +; X86-NEXT: movl %esp, %ebp +; X86-NEXT: .cfi_def_cfa_register %ebp +; X86-NEXT: andl $-32, %esp +; X86-NEXT: subl $128, %esp +; X86-NEXT: movl 8(%ebp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %ymm0, (%esp) +; X86-NEXT: vpbroadcastb (%eax), %ymm1 +; X86-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp) +; X86-NEXT: movl %ebp, %esp +; X86-NEXT: popl %ebp +; X86-NEXT: vzeroupper +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_32b: ; X64: ## %bb.0: ## %eintry @@ -1179,18 +1179,18 @@ eintry: } define void @isel_crash_8w(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_8w: -; X32: ## %bb.0: ## %entry -; X32-NEXT: subl $60, %esp -; X32-NEXT: .cfi_def_cfa_offset 64 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %xmm0, (%esp) -; X32-NEXT: vpbroadcastw (%eax), %xmm1 -; X32-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp) -; X32-NEXT: addl $60, %esp -; X32-NEXT: retl +; X86-LABEL: isel_crash_8w: +; X86: ## %bb.0: ## %entry +; X86-NEXT: subl $60, %esp +; X86-NEXT: .cfi_def_cfa_offset 64 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %xmm0, (%esp) +; X86-NEXT: vpbroadcastw (%eax), %xmm1 +; X86-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp) +; X86-NEXT: addl $60, %esp +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_8w: ; X64: ## %bb.0: ## %entry @@ -1216,25 +1216,25 @@ entry: } define void @isel_crash_16w(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_16w: -; X32: ## %bb.0: ## %eintry -; X32-NEXT: pushl %ebp -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %ebp, -8 -; X32-NEXT: movl %esp, %ebp -; X32-NEXT: .cfi_def_cfa_register %ebp -; X32-NEXT: andl $-32, %esp -; X32-NEXT: subl $128, %esp -; X32-NEXT: movl 8(%ebp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %ymm0, (%esp) -; X32-NEXT: vpbroadcastw (%eax), %ymm1 -; X32-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp) -; X32-NEXT: movl %ebp, %esp -; X32-NEXT: popl %ebp -; X32-NEXT: vzeroupper -; X32-NEXT: retl +; X86-LABEL: isel_crash_16w: +; X86: ## %bb.0: ## %eintry +; X86-NEXT: pushl %ebp +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %ebp, -8 +; X86-NEXT: movl %esp, %ebp +; X86-NEXT: .cfi_def_cfa_register %ebp +; X86-NEXT: andl $-32, %esp +; X86-NEXT: subl $128, %esp +; X86-NEXT: movl 8(%ebp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %ymm0, (%esp) +; X86-NEXT: vpbroadcastw (%eax), %ymm1 +; X86-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp) +; X86-NEXT: movl %ebp, %esp +; X86-NEXT: popl %ebp +; X86-NEXT: vzeroupper +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_16w: ; X64: ## %bb.0: ## %eintry @@ -1270,18 +1270,18 @@ eintry: } define void @isel_crash_4d(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_4d: -; X32: ## %bb.0: ## %entry -; X32-NEXT: subl $60, %esp -; X32-NEXT: .cfi_def_cfa_offset 64 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %xmm0, (%esp) -; X32-NEXT: vbroadcastss (%eax), %xmm1 -; X32-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovaps %xmm1, {{[0-9]+}}(%esp) -; X32-NEXT: addl $60, %esp -; X32-NEXT: retl +; X86-LABEL: isel_crash_4d: +; X86: ## %bb.0: ## %entry +; X86-NEXT: subl $60, %esp +; X86-NEXT: .cfi_def_cfa_offset 64 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %xmm0, (%esp) +; X86-NEXT: vbroadcastss (%eax), %xmm1 +; X86-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovaps %xmm1, {{[0-9]+}}(%esp) +; X86-NEXT: addl $60, %esp +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_4d: ; X64: ## %bb.0: ## %entry @@ -1307,25 +1307,25 @@ entry: } define void @isel_crash_8d(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_8d: -; X32: ## %bb.0: ## %eintry -; X32-NEXT: pushl %ebp -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %ebp, -8 -; X32-NEXT: movl %esp, %ebp -; X32-NEXT: .cfi_def_cfa_register %ebp -; X32-NEXT: andl $-32, %esp -; X32-NEXT: subl $128, %esp -; X32-NEXT: movl 8(%ebp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %ymm0, (%esp) -; X32-NEXT: vbroadcastss (%eax), %ymm1 -; X32-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovaps %ymm1, {{[0-9]+}}(%esp) -; X32-NEXT: movl %ebp, %esp -; X32-NEXT: popl %ebp -; X32-NEXT: vzeroupper -; X32-NEXT: retl +; X86-LABEL: isel_crash_8d: +; X86: ## %bb.0: ## %eintry +; X86-NEXT: pushl %ebp +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %ebp, -8 +; X86-NEXT: movl %esp, %ebp +; X86-NEXT: .cfi_def_cfa_register %ebp +; X86-NEXT: andl $-32, %esp +; X86-NEXT: subl $128, %esp +; X86-NEXT: movl 8(%ebp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %ymm0, (%esp) +; X86-NEXT: vbroadcastss (%eax), %ymm1 +; X86-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovaps %ymm1, {{[0-9]+}}(%esp) +; X86-NEXT: movl %ebp, %esp +; X86-NEXT: popl %ebp +; X86-NEXT: vzeroupper +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_8d: ; X64: ## %bb.0: ## %eintry @@ -1361,18 +1361,18 @@ eintry: } define void @isel_crash_2q(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_2q: -; X32: ## %bb.0: ## %entry -; X32-NEXT: subl $60, %esp -; X32-NEXT: .cfi_def_cfa_offset 64 -; X32-NEXT: movl {{[0-9]+}}(%esp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %xmm0, (%esp) -; X32-NEXT: vmovddup {{.*#+}} xmm1 = mem[0,0] -; X32-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovaps %xmm1, {{[0-9]+}}(%esp) -; X32-NEXT: addl $60, %esp -; X32-NEXT: retl +; X86-LABEL: isel_crash_2q: +; X86: ## %bb.0: ## %entry +; X86-NEXT: subl $60, %esp +; X86-NEXT: .cfi_def_cfa_offset 64 +; X86-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %xmm0, (%esp) +; X86-NEXT: vmovddup {{.*#+}} xmm1 = mem[0,0] +; X86-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovaps %xmm1, {{[0-9]+}}(%esp) +; X86-NEXT: addl $60, %esp +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_2q: ; X64: ## %bb.0: ## %entry @@ -1397,25 +1397,25 @@ entry: } define void @isel_crash_4q(ptr %cV_R.addr) { -; X32-LABEL: isel_crash_4q: -; X32: ## %bb.0: ## %eintry -; X32-NEXT: pushl %ebp -; X32-NEXT: .cfi_def_cfa_offset 8 -; X32-NEXT: .cfi_offset %ebp, -8 -; X32-NEXT: movl %esp, %ebp -; X32-NEXT: .cfi_def_cfa_register %ebp -; X32-NEXT: andl $-32, %esp -; X32-NEXT: subl $128, %esp -; X32-NEXT: movl 8(%ebp), %eax -; X32-NEXT: vxorps %xmm0, %xmm0, %xmm0 -; X32-NEXT: vmovaps %ymm0, (%esp) -; X32-NEXT: vbroadcastsd (%eax), %ymm1 -; X32-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) -; X32-NEXT: vmovaps %ymm1, {{[0-9]+}}(%esp) -; X32-NEXT: movl %ebp, %esp -; X32-NEXT: popl %ebp -; X32-NEXT: vzeroupper -; X32-NEXT: retl +; X86-LABEL: isel_crash_4q: +; X86: ## %bb.0: ## %eintry +; X86-NEXT: pushl %ebp +; X86-NEXT: .cfi_def_cfa_offset 8 +; X86-NEXT: .cfi_offset %ebp, -8 +; X86-NEXT: movl %esp, %ebp +; X86-NEXT: .cfi_def_cfa_register %ebp +; X86-NEXT: andl $-32, %esp +; X86-NEXT: subl $128, %esp +; X86-NEXT: movl 8(%ebp), %eax +; X86-NEXT: vxorps %xmm0, %xmm0, %xmm0 +; X86-NEXT: vmovaps %ymm0, (%esp) +; X86-NEXT: vbroadcastsd (%eax), %ymm1 +; X86-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp) +; X86-NEXT: vmovaps %ymm1, {{[0-9]+}}(%esp) +; X86-NEXT: movl %ebp, %esp +; X86-NEXT: popl %ebp +; X86-NEXT: vzeroupper +; X86-NEXT: retl ; ; X64-LABEL: isel_crash_4q: ; X64: ## %bb.0: ## %eintry @@ -1450,13 +1450,13 @@ eintry: } 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: vmovddup {{.*#+}} xmm0 = mem[0,0] -; 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: vmovddup {{.*#+}} xmm0 = mem[0,0] +; X86-NEXT: addl $12, %esp +; X86-NEXT: retl ; ; X64-AVX2-LABEL: broadcast_x86_mmx: ; X64-AVX2: ## %bb.0: ## %bb -- 2.7.4