[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / CodeGen / Mips / inlineasm-constraint-ZC-1.ll
blobfb075c2686267158ab54f3ba54ee56650b1dc987
1 ; RUN: llc -mtriple=mipsel -mcpu=mips32r6 -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,09BIT
2 ; RUN: llc -mtriple=mipsel -mattr=+micromips -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,12BIT
3 ; RUN: llc -mtriple=mipsel -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,16BIT
5 @data = global [8193 x i32] zeroinitializer
7 define void @ZC(ptr %p) nounwind {
8 entry:
9   ; ALL-LABEL: ZC:
11   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) @data)
13   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
14   ; ALL: #APP
15   ; ALL: lw $1, 0($[[BASEPTR]])
16   ; ALL: #NO_APP
18   ret void
21 define void @ZC_offset_n4(ptr %p) nounwind {
22 entry:
23   ; ALL-LABEL: ZC_offset_n4:
25   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 -1))
27   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
28   ; ALL: #APP
29   ; ALL: lw $1, -4($[[BASEPTR]])
30   ; ALL: #NO_APP
32   ret void
35 define void @ZC_offset_4(ptr %p) nounwind {
36 entry:
37   ; ALL-LABEL: ZC_offset_4:
39   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 1))
41   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
42   ; ALL: #APP
43   ; ALL: lw $1, 4($[[BASEPTR]])
44   ; ALL: #NO_APP
46   ret void
49 define void @ZC_offset_252(ptr %p) nounwind {
50 entry:
51   ; ALL-LABEL: ZC_offset_252:
53   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 63))
55   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
56   ; ALL: #APP
57   ; ALL: lw $1, 252($[[BASEPTR]])
58   ; ALL: #NO_APP
60   ret void
63 define void @ZC_offset_256(ptr %p) nounwind {
64 entry:
65   ; ALL-LABEL: ZC_offset_256:
67   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 64))
69   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
71   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 256
73   ; ALL: #APP
75   ; 09BIT: lw $1, 0($[[BASEPTR2]])
76   ; 12BIT: lw $1, 256($[[BASEPTR]])
77   ; 16BIT: lw $1, 256($[[BASEPTR]])
79   ; ALL: #NO_APP
81   ret void
84 define void @ZC_offset_2044(ptr %p) nounwind {
85 entry:
86   ; ALL-LABEL: ZC_offset_2044:
88   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 511))
90   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
92   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2044
94   ; ALL: #APP
96   ; 09BIT: lw $1, 0($[[BASEPTR2]])
97   ; 12BIT: lw $1, 2044($[[BASEPTR]])
98   ; 16BIT: lw $1, 2044($[[BASEPTR]])
100   ; ALL: #NO_APP
102   ret void
105 define void @ZC_offset_2048(ptr %p) nounwind {
106 entry:
107   ; ALL-LABEL: ZC_offset_2048:
109   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 512))
111   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
113   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2048
114   ; 12BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2048
116   ; ALL: #APP
118   ; 09BIT: lw $1, 0($[[BASEPTR2]])
119   ; 12BIT: lw $1, 0($[[BASEPTR2]])
120   ; 16BIT: lw $1, 2048($[[BASEPTR]])
122   ; ALL: #NO_APP
124   ret void
127 define void @ZC_offset_32764(ptr %p) nounwind {
128 entry:
129   ; ALL-LABEL: ZC_offset_32764:
131   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 8191))
133   ; ALL-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
135   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 32764
136   ; 12BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 32764
138   ; ALL: #APP
140   ; 09BIT: lw $1, 0($[[BASEPTR2]])
141   ; 12BIT: lw $1, 0($[[BASEPTR2]])
142   ; 16BIT: lw $1, 32764($[[BASEPTR]])
144   ; ALL: #NO_APP
146   ret void
149 define void @ZC_offset_32768(ptr %p) nounwind {
150 entry:
151   ; ALL-LABEL: ZC_offset_32768:
153   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(ptr elementtype(i32) getelementptr inbounds ([8193 x i32], ptr @data, i32 0, i32 8192))
155   ; ALL-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
156   ; ALL-DAG: ori $[[T0:[0-9]+]], $zero, 32768
158   ; 09BIT: addu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
159   ; 12BIT: addu16 $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
160   ; 16BIT: addu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
162   ; ALL: #APP
163   ; ALL: lw $1, 0($[[BASEPTR2]])
164   ; ALL: #NO_APP
166   ret void