Index: llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp =================================================================== --- llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp +++ llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp @@ -520,8 +520,6 @@ MachineOperand &MO = MI->getOperand(i); if (!MO.isReg()) continue; - if (MO.isImplicit()) - break; if (MO.isUse()) continue; for (int rx : regIndices(MO.getReg())) { Index: llvm/trunk/test/CodeGen/X86/break-false-dep.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/break-false-dep.ll +++ llvm/trunk/test/CodeGen/X86/break-false-dep.ll @@ -199,3 +199,13 @@ ;AVX-NEXT: vmulsd {{.*}}, [[XMM0]], [[XMM0]] ;AVX-NEXT: vmovsd [[XMM0]], } + +define double @inlineasmdep(i64 %arg) { +top: + tail call void asm sideeffect "", "~{xmm0},~{dirflag},~{fpsr},~{flags}"() + %tmp1 = sitofp i64 %arg to double + ret double %tmp1 +;AVX-LABEL:@inlineasmdep +;AVX: vxorps [[XMM0:%xmm[0-9]+]], [[XMM0]], [[XMM0]] +;AVX-NEXT: vcvtsi2sdq {{.*}}, [[XMM0]], {{%xmm[0-9]+}} +}