[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / CodeGen / Mips / inlineasm-constraint-o.ll
blob550446deb5816423ea562fbc3aa02dba2b0955c0
1 ; RUN: llc -march=mipsel -relocation-model=pic < %s | FileCheck %s
3 @data = global [8193 x i32] zeroinitializer
5 define void @o(ptr %p) nounwind {
6 entry:
7   ; CHECK-LABEL: o:
9   call void asm sideeffect "lw $$1, $0", "*o,~{$1}"(ptr elementtype(i32) @data)
11   ; CHECK: lw $[[BASEPTR:[0-9]+]], %got(data)(
12   ; CHECK: #APP
13   ; CHECK: lw $1, 0($[[BASEPTR]])
14   ; CHECK: #NO_APP
16   ret void
19 define void @o_offset_4(ptr %p) nounwind {
20 entry:
21   ; CHECK-LABEL: o_offset_4:
23   call void asm sideeffect "lw $$1, $0", "*o,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 1))
25   ; CHECK: lw $[[BASEPTR:[0-9]+]], %got(data)(
26   ; CHECK: #APP
27   ; CHECK: lw $1, 4($[[BASEPTR]])
28   ; CHECK: #NO_APP
30   ret void
33 define void @o_offset_32764(ptr %p) nounwind {
34 entry:
35   ; CHECK-LABEL: o_offset_32764:
37   call void asm sideeffect "lw $$1, $0", "*o,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 8191))
39   ; CHECK-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
40   ; CHECK: #APP
41   ; CHECK: lw $1, 32764($[[BASEPTR]])
42   ; CHECK: #NO_APP
44   ret void
47 define void @o_offset_32768(ptr %p) nounwind {
48 entry:
49   ; CHECK-LABEL: o_offset_32768:
51   call void asm sideeffect "lw $$1, $0", "*o,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 8192))
53   ; CHECK-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
54   ; CHECK-DAG: ori $[[T0:[0-9]+]], $zero, 32768
55   ; CHECK: addu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
56   ; CHECK: #APP
57   ; CHECK: lw $1, 0($[[BASEPTR2]])
58   ; CHECK: #NO_APP
60   ret void