; 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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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:
}
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:
; 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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
; 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
}
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
; 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
}
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
; 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
}
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:
}
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:
}
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
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
}
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:
; (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:
}
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:
}
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:
}
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:
}
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:
; 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:
; 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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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