This repository was archived by the owner on Sep 2, 2018. It is now read-only.
This repository was archived by the owner on Sep 2, 2018. It is now read-only.
32 bit shift instructions are using missing libgcc symbols #163
Open
Description
LSHR and SHL with i32 operands are producing calls to libgcc symbols which don't exist. LSHR produces a call to __lshrsi3
and SHL produces a call to __ashlsi3
.
The following programs demonstrate the problem.
LSHR:
define i32 @run(i32 %a, i32 %b) #0 {
%1 = lshr i32 %a, %b
ret i32 %1
}
define i32 @main() #1 {
%1 = call i32 @run(i32 31, i32 31)
ret i32 %1
}
SHL:
define i32 @run(i32 %a, i32 %b) #0 {
%1 = shl nsw i32 %a, %b
ret i32 %1
}
define i32 @main() #1 {
%1 = call i32 @run(i32 31, i32 31)
ret i32 %1
}