| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+micromips \ |
| Zoran Jovanovic | b554bba | 2014-11-25 10:50:00 +0000 | [diff] [blame] | 2 | ; RUN: -relocation-model=static -O2 < %s | FileCheck %s |
| Hrvoje Varga | c45baf2 | 2016-03-23 10:29:38 +0000 | [diff] [blame] | 3 | ; RUN: llc -march=mipsel -mcpu=mips32r6 -mattr=+micromips \ |
| 4 | ; RUN: -relocation-model=static -O2 < %s | FileCheck %s -check-prefix=CHECK-MMR6 |
| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 5 | |
| Zoran Jovanovic | b554bba | 2014-11-25 10:50:00 +0000 | [diff] [blame] | 6 | ; Function Attrs: nounwind |
| 7 | define i32 @foo(i32 signext %a) #0 { |
| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 8 | entry: |
| 9 | %a.addr = alloca i32, align 4 |
| 10 | store i32 %a, i32* %a.addr, align 4 |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 11 | %0 = load i32, i32* %a.addr, align 4 |
| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 12 | %shl = shl i32 %0, 2 |
| Zoran Jovanovic | b554bba | 2014-11-25 10:50:00 +0000 | [diff] [blame] | 13 | %call = call i32 @bar(i32 signext %shl) |
| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 14 | ret i32 %call |
| 15 | } |
| 16 | |
| Zoran Jovanovic | b554bba | 2014-11-25 10:50:00 +0000 | [diff] [blame] | 17 | declare i32 @bar(i32 signext) #1 |
| Zoran Jovanovic | 37bca10 | 2014-11-10 17:27:56 +0000 | [diff] [blame] | 18 | |
| Zoran Jovanovic | b554bba | 2014-11-25 10:50:00 +0000 | [diff] [blame] | 19 | ; CHECK: jals |
| 20 | ; CHECK-NEXT: sll16 |
| Hrvoje Varga | c45baf2 | 2016-03-23 10:29:38 +0000 | [diff] [blame] | 21 | ; CHECK-MMR6: jal |
| 22 | ; CHECK-MMR6-NOT: sll16 |