xref: /aosp_15_r20/external/llvm/test/CodeGen/Lanai/shift.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=lanai | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Test lowering of shifts.
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine i32 @irs(i32 inreg %a) #0 {
6*9880d681SAndroid Build Coastguard Workerentry:
7*9880d681SAndroid Build Coastguard Worker  %shr = ashr i32 %a, 13
8*9880d681SAndroid Build Coastguard Worker  ret i32 %shr
9*9880d681SAndroid Build Coastguard Worker}
10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: irs
11*9880d681SAndroid Build Coastguard Worker; CHECK: sha %r6, -0xd, %rv
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine i32 @urs(i32 inreg %a) #0 {
14*9880d681SAndroid Build Coastguard Workerentry:
15*9880d681SAndroid Build Coastguard Worker  %shr = lshr i32 %a, 13
16*9880d681SAndroid Build Coastguard Worker  ret i32 %shr
17*9880d681SAndroid Build Coastguard Worker}
18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urs
19*9880d681SAndroid Build Coastguard Worker; CHECK: sh %r6, -0xd, %rv
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine i32 @ls(i32 inreg %a) #0 {
22*9880d681SAndroid Build Coastguard Workerentry:
23*9880d681SAndroid Build Coastguard Worker  %shl = shl i32 %a, 13
24*9880d681SAndroid Build Coastguard Worker  ret i32 %shl
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: ls
27*9880d681SAndroid Build Coastguard Worker; CHECK: sh %r6, 0xd, %rv
28*9880d681SAndroid Build Coastguard Worker
29