blob: 24decbb8f3fab622c2afc514465cbccdbec913c4 [file] [log] [blame]
Akira Hatanaka25a7d942011-09-30 03:18:46 +00001; RUN: llc -march=mips64el -mcpu=mips64r1 < %s | FileCheck %s
2
3define i64 @f0(i64 %a0, i64 %a1) nounwind readnone {
4entry:
5; CHECK: dsllv
6 %shl = shl i64 %a0, %a1
7 ret i64 %shl
8}
9
10define i64 @f1(i64 %a0, i64 %a1) nounwind readnone {
11entry:
12; CHECK: dsrav
13 %shr = ashr i64 %a0, %a1
14 ret i64 %shr
15}
16
17define i64 @f2(i64 %a0, i64 %a1) nounwind readnone {
18entry:
19; CHECK: dsrlv
20 %shr = lshr i64 %a0, %a1
21 ret i64 %shr
22}
23
24define i64 @f3(i64 %a0) nounwind readnone {
25entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000026; CHECK: dsll ${{[0-9]+}}, ${{[0-9]+}}, 10
Akira Hatanaka25a7d942011-09-30 03:18:46 +000027 %shl = shl i64 %a0, 10
28 ret i64 %shl
29}
30
31define i64 @f4(i64 %a0) nounwind readnone {
32entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000033; CHECK: dsra ${{[0-9]+}}, ${{[0-9]+}}, 10
Akira Hatanaka25a7d942011-09-30 03:18:46 +000034 %shr = ashr i64 %a0, 10
35 ret i64 %shr
36}
37
38define i64 @f5(i64 %a0) nounwind readnone {
39entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000040; CHECK: dsrl ${{[0-9]+}}, ${{[0-9]+}}, 10
Akira Hatanaka25a7d942011-09-30 03:18:46 +000041 %shr = lshr i64 %a0, 10
42 ret i64 %shr
43}
44
45define i64 @f6(i64 %a0) nounwind readnone {
46entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000047; CHECK: dsll32 ${{[0-9]+}}, ${{[0-9]+}}, 8
Akira Hatanaka25a7d942011-09-30 03:18:46 +000048 %shl = shl i64 %a0, 40
49 ret i64 %shl
50}
51
52define i64 @f7(i64 %a0) nounwind readnone {
53entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000054; CHECK: dsra32 ${{[0-9]+}}, ${{[0-9]+}}, 8
Akira Hatanaka25a7d942011-09-30 03:18:46 +000055 %shr = ashr i64 %a0, 40
56 ret i64 %shr
57}
58
59define i64 @f8(i64 %a0) nounwind readnone {
60entry:
Akira Hatanakad80c13b2011-09-30 17:19:21 +000061; CHECK: dsrl32 ${{[0-9]+}}, ${{[0-9]+}}, 8
Akira Hatanaka25a7d942011-09-30 03:18:46 +000062 %shr = lshr i64 %a0, 40
63 ret i64 %shr
64}