Displaying 2 results from an estimated 2 matches for "carry3".
Did you mean:
carry
2013 Jun 28
3
[LLVMdev] Question regarding the x86 SBB instruction.
...be 1)
So, the problem only occurs with the edge case of %eax == 0xffffffff
and carry == 1
Any ideas how I could make this work accurately in LLVM IR ?
I could put an if round it:
if ((%eax1 == 0xffffffff)) && (%carry1 == 1)) {
%carry2 = 1
} else {
%eax2 = ADD i32 %eax1, %carry
[%edx2,%carry3] = llvm.ssub.with.overflow.i32 %edx1, %eax2
}
%carry4 = phi (%carry2, %carry3) (true branch, else branch)
%edx3 = phi (%edx1, %edx2)
branch cond %carry4 jump_destination
Any better ideas?
James
2013 Jun 28
0
[LLVMdev] Question regarding the x86 SBB instruction.
...edge case of %eax == 0xffffffff
> and carry == 1
>
> Any ideas how I could make this work accurately in LLVM IR ?
> I could put an if round it:
> if ((%eax1 == 0xffffffff)) && (%carry1 == 1)) {
> %carry2 = 1
> } else {
> %eax2 = ADD i32 %eax1, %carry
> [%edx2,%carry3] = llvm.ssub.with.overflow.i32 %edx1, %eax2
> }
> %carry4 = phi (%carry2, %carry3) (true branch, else branch)
> %edx3 = phi (%edx1, %edx2)
> branch cond %carry4 jump_destination
>
> Any better ideas?
>
> James
> _______________________________________________
>...