| ; RUN: llc -march=mipsel < %s | FileCheck %s |
| |
| define i64 @shl0(i64 %a, i32 %b) nounwind readnone { |
| entry: |
| ; CHECK: shl0 |
| ; CHECK-NOT: lw $25, %call16(__ |
| %sh_prom = zext i32 %b to i64 |
| %shl = shl i64 %a, %sh_prom |
| ret i64 %shl |
| } |
| |
| define i64 @shr1(i64 %a, i32 %b) nounwind readnone { |
| entry: |
| ; CHECK: shr1 |
| ; CHECK-NOT: lw $25, %call16(__ |
| %sh_prom = zext i32 %b to i64 |
| %shr = lshr i64 %a, %sh_prom |
| ret i64 %shr |
| } |
| |
| define i64 @sra2(i64 %a, i32 %b) nounwind readnone { |
| entry: |
| ; CHECK: sra2 |
| ; CHECK-NOT: lw $25, %call16(__ |
| %sh_prom = zext i32 %b to i64 |
| %shr = ashr i64 %a, %sh_prom |
| ret i64 %shr |
| } |
| |