Displaying 1 result from an estimated 1 matches for "hidest".
Did you mean:
hides
2007 Nov 21
3
[LLVMdev] Add/sub with carry; widening multiply
...ning multiply
addw i32 %lhs %rhs -> i33 ; widening add
addc i32 %lhs, i32 %rhs, i1 %c -> i33 ; add with carry
Alternatively, would something like following get reduced to a single multiply and two stores on arch's that support wide multiplies, like x86-32 and ARM?
define void @mulw(i32* hidest, i32* lodest, i32 lhs, i32 rhs) {
%0 = sext i32 %lhs to i64
%1 = sext i32 %rhs to i64
%2 = mul i64 %0 %1
%3 = trunc i64 %2 to i32
%4 = lshr i64 %2, 32
%5 = truc i64 %4 to i32
store i32 %3, i32* %lodest
store i32 %5, i32* %hidest
ret void
}
Another alternative could rely on multip...