Description
Bugzilla Link | 35549 |
Resolution | FIXED |
Resolved on | Dec 18, 2017 03:00 |
Version | trunk |
OS | Windows NT |
Blocks | #31672 |
CC | @adibiagio,@topperc,@rotateright |
Fixed by commit(s) | 320837 |
Extended Description
Taken from llvm\test\CodeGen\X86\avx512-schedule.ll
declare void @func_f32(float)
define <16 x float> @broadcast_ss_spill(float %x) {
%a = fadd float %x, %x
call void @func_f32(float %a)
%b = insertelement <16 x float> undef, float %a, i32 0
%c = shufflevector <16 x float> %b, <16 x float> undef, <16 x i32> zeroinitializer
ret <16 x float> %c
}
Note the repeated scheduling comments for vmovaps and vbroadcastss:
llc -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx
.text
.file "bar.ll"
.globl broadcast_ss_spill # -- Begin function broadcast_ss_spill
.p2align 4, 0x90
.type broadcast_ss_spill,@function
broadcast_ss_spill: # @broadcast_ss_spill
.cfi_startproc
%bb.0:
subq $24, %rsp # sched: [1:0.25]
.cfi_def_cfa_offset 32
vaddss %xmm0, %xmm0, %xmm0 # sched: [4:0.33]
vmovaps %xmm0, (%rsp) # 16-byte Spill sched: [1:1.00]
# sched: [1:1.00]
callq func_f32
vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload sched: [8:0.50]
# sched: [8:0.50]
addq $24, %rsp # sched: [1:0.25]
retq # sched: [7:1.00]
func_end0:
.size broadcast_ss_spill, .Lfunc_end0-broadcast_ss_spill
.cfi_endproc
# -- End function
.section ".note.GNU-stack","",@progbits