Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/X86/avx512-vbroadcast.ll
Show First 20 Lines • Show All 408 Lines • ▼ Show 20 Lines | |||||
; ALL-NEXT: subq $24, %rsp | ; ALL-NEXT: subq $24, %rsp | ||||
; ALL-NEXT: .Lcfi0: | ; ALL-NEXT: .Lcfi0: | ||||
; ALL-NEXT: .cfi_def_cfa_offset 32 | ; ALL-NEXT: .cfi_def_cfa_offset 32 | ||||
; ALL-NEXT: vaddss %xmm0, %xmm0, %xmm0 | ; ALL-NEXT: vaddss %xmm0, %xmm0, %xmm0 | ||||
; ALL-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill | ; ALL-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill | ||||
; ALL-NEXT: callq func_f32 | ; ALL-NEXT: callq func_f32 | ||||
; ALL-NEXT: vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload | ; ALL-NEXT: vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload | ||||
; ALL-NEXT: addq $24, %rsp | ; ALL-NEXT: addq $24, %rsp | ||||
; ALL-NEXT: .Lcfi1: | |||||
; ALL-NEXT: .cfi_def_cfa_offset 8 | |||||
; ALL-NEXT: retq | ; ALL-NEXT: retq | ||||
%a = fadd float %x, %x | %a = fadd float %x, %x | ||||
call void @func_f32(float %a) | call void @func_f32(float %a) | ||||
%b = insertelement <16 x float> undef, float %a, i32 0 | %b = insertelement <16 x float> undef, float %a, i32 0 | ||||
%c = shufflevector <16 x float> %b, <16 x float> undef, <16 x i32> zeroinitializer | %c = shufflevector <16 x float> %b, <16 x float> undef, <16 x i32> zeroinitializer | ||||
ret <16 x float> %c | ret <16 x float> %c | ||||
} | } | ||||
declare void @func_f64(double) | declare void @func_f64(double) | ||||
define <8 x double> @broadcast_sd_spill(double %x) { | define <8 x double> @broadcast_sd_spill(double %x) { | ||||
; ALL-LABEL: broadcast_sd_spill: | ; ALL-LABEL: broadcast_sd_spill: | ||||
; ALL: # BB#0: | ; ALL: # BB#0: | ||||
; ALL-NEXT: subq $24, %rsp | ; ALL-NEXT: subq $24, %rsp | ||||
; ALL-NEXT: .Lcfi1: | ; ALL-NEXT: .Lcfi2: | ||||
; ALL-NEXT: .cfi_def_cfa_offset 32 | ; ALL-NEXT: .cfi_def_cfa_offset 32 | ||||
; ALL-NEXT: vaddsd %xmm0, %xmm0, %xmm0 | ; ALL-NEXT: vaddsd %xmm0, %xmm0, %xmm0 | ||||
; ALL-NEXT: vmovapd %xmm0, (%rsp) # 16-byte Spill | ; ALL-NEXT: vmovapd %xmm0, (%rsp) # 16-byte Spill | ||||
; ALL-NEXT: callq func_f64 | ; ALL-NEXT: callq func_f64 | ||||
; ALL-NEXT: vbroadcastsd (%rsp), %zmm0 # 16-byte Folded Reload | ; ALL-NEXT: vbroadcastsd (%rsp), %zmm0 # 16-byte Folded Reload | ||||
; ALL-NEXT: addq $24, %rsp | ; ALL-NEXT: addq $24, %rsp | ||||
; ALL-NEXT: .Lcfi3: | |||||
; ALL-NEXT: .cfi_def_cfa_offset 8 | |||||
; ALL-NEXT: retq | ; ALL-NEXT: retq | ||||
%a = fadd double %x, %x | %a = fadd double %x, %x | ||||
call void @func_f64(double %a) | call void @func_f64(double %a) | ||||
%b = insertelement <8 x double> undef, double %a, i32 0 | %b = insertelement <8 x double> undef, double %a, i32 0 | ||||
%c = shufflevector <8 x double> %b, <8 x double> undef, <8 x i32> zeroinitializer | %c = shufflevector <8 x double> %b, <8 x double> undef, <8 x i32> zeroinitializer | ||||
ret <8 x double> %c | ret <8 x double> %c | ||||
} | } |