xref: /aosp_15_r20/external/llvm/test/CodeGen/Lanai/codemodel.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=lanai < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=lanai < %s -code-model=small  | FileCheck -check-prefix CHECK-SMALL %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker@data = external global [0 x i32]		; <[0 x i32]*> [#uses=5]
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine i32 @foo() nounwind readonly {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker; CHECK-SMALL-LABEL:  foo:
9*9880d681SAndroid Build Coastguard Worker; CHECK-SMALL: ld [data], %rv
10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL:  foo:
11*9880d681SAndroid Build Coastguard Worker; CHECK: mov hi(data), %r[[REGISTER:[0-9]+]]
12*9880d681SAndroid Build Coastguard Worker; CHECK: or %r[[REGISTER]], lo(data), %r[[REGISTER]]
13*9880d681SAndroid Build Coastguard Worker; CHECK: ld 0[%r[[REGISTER]]], %rv
14*9880d681SAndroid Build Coastguard Worker	%0 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @data, i64 0, i64 0), align 4		; <i32> [#uses=1]
15*9880d681SAndroid Build Coastguard Worker	ret i32 %0
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine i32 @foo1() nounwind readonly {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker; CHECK-SMALL-LABEL:  foo1:
21*9880d681SAndroid Build Coastguard Worker; CHECK-SMALL: mov data, %r[[REGISTER:[0-9]+]]
22*9880d681SAndroid Build Coastguard Worker; CHECK-SMALL: ld 40[%r[[REGISTER]]], %rv
23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL:  foo1:
24*9880d681SAndroid Build Coastguard Worker; CHECK: mov hi(data), %r[[REGISTER:[0-9]+]]
25*9880d681SAndroid Build Coastguard Worker; CHECK: or %r[[REGISTER]], lo(data), %r[[REGISTER]]
26*9880d681SAndroid Build Coastguard Worker; CHECK: ld 40[%r[[REGISTER]]], %rv
27*9880d681SAndroid Build Coastguard Worker	%0 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @data, i32 0, i64 10), align 4		; <i32> [#uses=1]
28*9880d681SAndroid Build Coastguard Worker	ret i32 %0
29*9880d681SAndroid Build Coastguard Worker}
30*9880d681SAndroid Build Coastguard Worker
31