https://llvm.org/bugs/show_bug.cgi?id=21743
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WORKSFORME |--- --- Comment #7 from [email protected] --- Alright, someone found a new test case for this one. (reproducible on llvm3.5 through svn commit r234975+) The full (runnable) example is captured at https://gist.github.com/vtjnash/80a2aa73f04e33ec13b2 In particular, we are interested in the following lines: callq *%rax vmovapd %xmm0, %xmm6 vxorps %xmm0, %xmm0, %xmm0 vcvtsi2sdq %rsi, %xmm0, %xmm7 movl $339772768, %eax # imm = 0x14408560 # kill: XMM0<def> XMM6<kill> vmovaps %xmm7, %xmm1 callq *%rax Per the win64 calling convention, the argument value got returned in xmm0, and should be passed to the next function, still in xmm0. However, we see that this value is getting listed in the 'kill' comment (after getting zero'd by the vxorps instruction, but before being used by the second function call) Adding -disable-copyprop replaces the 'kill' comment with the missing `vmovapd %xmm6, %xmm0` instruction (and makes no other changes to the output) -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ LLVMbugs mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs
