blob: a4f8ffe9408d2dbd29e60753d800dae160ad0dab [file] [log] [blame]
Zoran Jovanovic9f997232014-11-05 17:38:31 +00001; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+micromips \
2; RUN: -relocation-model=pic -O3 < %s | FileCheck %s
Zlatko Buljan29813622016-04-27 11:02:23 +00003; RUN: llc -march=mipsel -mcpu=mips32r6 -mattr=+micromips \
4; RUN: -relocation-model=pic -O3 < %s | FileCheck %s
Zoran Jovanovic9f997232014-11-05 17:38:31 +00005
6@a = global i32 10, align 4
7@b = global i32 0, align 4
8@c = global i32 10, align 4
9@d = global i32 0, align 4
10
11define i32 @shift_left() nounwind {
12entry:
David Blaikiea79ac142015-02-27 21:17:42 +000013 %0 = load i32, i32* @a, align 4
Zoran Jovanovic9f997232014-11-05 17:38:31 +000014 %shl = shl i32 %0, 4
15 store i32 %shl, i32* @b, align 4
16
David Blaikiea79ac142015-02-27 21:17:42 +000017 %1 = load i32, i32* @c, align 4
Zoran Jovanovic9f997232014-11-05 17:38:31 +000018 %shl1 = shl i32 %1, 10
19 store i32 %shl1, i32* @d, align 4
20
21 ret i32 0
22}
23
24; CHECK: sll16 ${{[2-7]|16|17}}, ${{[2-7]|16|17}}, {{[0-7]}}
25; CHECK: sll ${{[0-9]+}}, ${{[0-9]+}}, {{[0-9]+}}
26
27@i = global i32 10654, align 4
28@j = global i32 0, align 4
29@m = global i32 10, align 4
30@n = global i32 0, align 4
31
32define i32 @shift_right() nounwind {
33entry:
David Blaikiea79ac142015-02-27 21:17:42 +000034 %0 = load i32, i32* @i, align 4
Zoran Jovanovic9f997232014-11-05 17:38:31 +000035 %shr = lshr i32 %0, 4
36 store i32 %shr, i32* @j, align 4
37
David Blaikiea79ac142015-02-27 21:17:42 +000038 %1 = load i32, i32* @m, align 4
Zoran Jovanovic9f997232014-11-05 17:38:31 +000039 %shr1 = lshr i32 %1, 10
40 store i32 %shr1, i32* @n, align 4
41
42 ret i32 0
43}
44
45; CHECK: srl16 ${{[2-7]|16|17}}, ${{[2-7]|16|17}}, {{[0-7]}}
46; CHECK: srl ${{[0-9]+}}, ${{[0-9]+}}, {{[0-9]+}}