xref: /aosp_15_r20/external/llvm/test/MC/Mips/mips64shift.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 -disable-mips-delay-filler %s -o - \
2*9880d681SAndroid Build Coastguard Worker; RUN:   | llvm-objdump -disassemble - | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 %s -o - \
5*9880d681SAndroid Build Coastguard Worker; RUN:   | llvm-objdump -disassemble - | FileCheck %s
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerdefine i64 @f3(i64 %a0) nounwind readnone {
8*9880d681SAndroid Build Coastguard Workerentry:
9*9880d681SAndroid Build Coastguard Worker; CHECK: dsll ${{[0-9]+}}, ${{[0-9]+}}, 10
10*9880d681SAndroid Build Coastguard Worker  %shl = shl i64 %a0, 10
11*9880d681SAndroid Build Coastguard Worker  ret i64 %shl
12*9880d681SAndroid Build Coastguard Worker}
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine i64 @f4(i64 %a0) nounwind readnone {
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker; CHECK: dsra ${{[0-9]+}}, ${{[0-9]+}}, 10
17*9880d681SAndroid Build Coastguard Worker  %shr = ashr i64 %a0, 10
18*9880d681SAndroid Build Coastguard Worker  ret i64 %shr
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine i64 @f5(i64 %a0) nounwind readnone {
22*9880d681SAndroid Build Coastguard Workerentry:
23*9880d681SAndroid Build Coastguard Worker; CHECK: dsrl ${{[0-9]+}}, ${{[0-9]+}}, 10
24*9880d681SAndroid Build Coastguard Worker  %shr = lshr i64 %a0, 10
25*9880d681SAndroid Build Coastguard Worker  ret i64 %shr
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdefine i64 @f6(i64 %a0) nounwind readnone {
29*9880d681SAndroid Build Coastguard Workerentry:
30*9880d681SAndroid Build Coastguard Worker; CHECK: dsll32 ${{[0-9]+}}, ${{[0-9]+}}, 8
31*9880d681SAndroid Build Coastguard Worker  %shl = shl i64 %a0, 40
32*9880d681SAndroid Build Coastguard Worker  ret i64 %shl
33*9880d681SAndroid Build Coastguard Worker}
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workerdefine i64 @f7(i64 %a0) nounwind readnone {
36*9880d681SAndroid Build Coastguard Workerentry:
37*9880d681SAndroid Build Coastguard Worker; CHECK: dsra32 ${{[0-9]+}}, ${{[0-9]+}}, 8
38*9880d681SAndroid Build Coastguard Worker  %shr = ashr i64 %a0, 40
39*9880d681SAndroid Build Coastguard Worker  ret i64 %shr
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerdefine i64 @f8(i64 %a0) nounwind readnone {
43*9880d681SAndroid Build Coastguard Workerentry:
44*9880d681SAndroid Build Coastguard Worker; CHECK: dsrl32 ${{[0-9]+}}, ${{[0-9]+}}, 8
45*9880d681SAndroid Build Coastguard Worker  %shr = lshr i64 %a0, 40
46*9880d681SAndroid Build Coastguard Worker  ret i64 %shr
47*9880d681SAndroid Build Coastguard Worker}
48*9880d681SAndroid Build Coastguard Worker
49