Revert "[AArch64] Add DAG combine for extract extend pattern"
[oota-llvm.git] / test / CodeGen / Mips / inlineasm_constraint_ZC.ll
1 ; RUN: llc -march=mipsel -mcpu=mips32r6 < %s | FileCheck %s -check-prefix=ALL -check-prefix=09BIT
2 ; RUN: llc -march=mipsel -mattr=+micromips < %s | FileCheck %s -check-prefix=ALL -check-prefix=12BIT
3 ; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=ALL -check-prefix=16BIT
4
5 @data = global [8193 x i32] zeroinitializer
6
7 define void @ZC(i32 *%p) nounwind {
8 entry:
9   ; ALL-LABEL: ZC:
10
11   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 0))
12
13   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
14   ; ALL: #APP
15   ; ALL: lw $1, 0($[[BASEPTR]])
16   ; ALL: #NO_APP
17
18   ret void
19 }
20
21 define void @ZC_offset_n4(i32 *%p) nounwind {
22 entry:
23   ; ALL-LABEL: ZC_offset_n4:
24
25   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 -1))
26
27   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
28   ; ALL: #APP
29   ; ALL: lw $1, -4($[[BASEPTR]])
30   ; ALL: #NO_APP
31
32   ret void
33 }
34
35 define void @ZC_offset_4(i32 *%p) nounwind {
36 entry:
37   ; ALL-LABEL: ZC_offset_4:
38
39   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 1))
40
41   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
42   ; ALL: #APP
43   ; ALL: lw $1, 4($[[BASEPTR]])
44   ; ALL: #NO_APP
45
46   ret void
47 }
48
49 define void @ZC_offset_252(i32 *%p) nounwind {
50 entry:
51   ; ALL-LABEL: ZC_offset_252:
52
53   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 63))
54
55   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
56   ; ALL: #APP
57   ; ALL: lw $1, 252($[[BASEPTR]])
58   ; ALL: #NO_APP
59
60   ret void
61 }
62
63 define void @ZC_offset_256(i32 *%p) nounwind {
64 entry:
65   ; ALL-LABEL: ZC_offset_256:
66
67   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 64))
68
69   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
70
71   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 256
72
73   ; ALL: #APP
74
75   ; 09BIT: lw $1, 0($[[BASEPTR2]])
76   ; 12BIT: lw $1, 256($[[BASEPTR]])
77   ; 16BIT: lw $1, 256($[[BASEPTR]])
78
79   ; ALL: #NO_APP
80
81   ret void
82 }
83
84 define void @ZC_offset_2044(i32 *%p) nounwind {
85 entry:
86   ; ALL-LABEL: ZC_offset_2044:
87
88   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 511))
89
90   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
91
92   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2044
93
94   ; ALL: #APP
95
96   ; 09BIT: lw $1, 0($[[BASEPTR2]])
97   ; 12BIT: lw $1, 2044($[[BASEPTR]])
98   ; 16BIT: lw $1, 2044($[[BASEPTR]])
99
100   ; ALL: #NO_APP
101
102   ret void
103 }
104
105 define void @ZC_offset_2048(i32 *%p) nounwind {
106 entry:
107   ; ALL-LABEL: ZC_offset_2048:
108
109   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 512))
110
111   ; ALL: lw $[[BASEPTR:[0-9]+]], %got(data)(
112
113   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2048
114   ; 12BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 2048
115
116   ; ALL: #APP
117
118   ; 09BIT: lw $1, 0($[[BASEPTR2]])
119   ; 12BIT: lw $1, 0($[[BASEPTR2]])
120   ; 16BIT: lw $1, 2048($[[BASEPTR]])
121
122   ; ALL: #NO_APP
123
124   ret void
125 }
126
127 define void @ZC_offset_32764(i32 *%p) nounwind {
128 entry:
129   ; ALL-LABEL: ZC_offset_32764:
130
131   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 8191))
132
133   ; ALL-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
134
135   ; 09BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 32764
136   ; 12BIT: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 32764
137
138   ; ALL: #APP
139
140   ; 09BIT: lw $1, 0($[[BASEPTR2]])
141   ; 12BIT: lw $1, 0($[[BASEPTR2]])
142   ; 16BIT: lw $1, 32764($[[BASEPTR]])
143
144   ; ALL: #NO_APP
145
146   ret void
147 }
148
149 define void @ZC_offset_32768(i32 *%p) nounwind {
150 entry:
151   ; ALL-LABEL: ZC_offset_32768:
152
153   call void asm sideeffect "lw $$1, $0", "*^ZC,~{$1}"(i32* getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 8192))
154
155   ; ALL-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)(
156   ; ALL-DAG: ori $[[T0:[0-9]+]], $zero, 32768
157
158   ; 09BIT: addu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
159   ; 12BIT: addu16 $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
160   ; 16BIT: addu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], $[[T0]]
161
162   ; ALL: #APP
163   ; ALL: lw $1, 0($[[BASEPTR2]])
164   ; ALL: #NO_APP
165
166   ret void
167 }