Skip to content

Commit 84ad292

Browse files
committed
[LoongArch] Pre-commit tests for merge base offset. NFC
1 parent 2d6f4d2 commit 84ad292

File tree

2 files changed

+1153
-0
lines changed

2 files changed

+1153
-0
lines changed

llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,49 @@ define i32 @m_offset_2048(ptr %p) nounwind {
141141
%2 = call i32 asm "ld.w $0, $1", "=r,*m"(ptr elementtype(i32) %1)
142142
ret i32 %2
143143
}
144+
145+
@g_i32 = dso_local global i32 0
146+
147+
define i32 @m_addr_pcrel() nounwind {
148+
; LA32-LABEL: m_addr_pcrel:
149+
; LA32: # %bb.0:
150+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
151+
; LA32-NEXT: addi.w $a1, $a0, %pc_lo12(g_i32)
152+
; LA32-NEXT: #APP
153+
; LA32-NEXT: ld.w $a0, $a1, 0
154+
; LA32-NEXT: #NO_APP
155+
; LA32-NEXT: ret
156+
;
157+
; LA64-LABEL: m_addr_pcrel:
158+
; LA64: # %bb.0:
159+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
160+
; LA64-NEXT: addi.d $a1, $a0, %pc_lo12(g_i32)
161+
; LA64-NEXT: #APP
162+
; LA64-NEXT: ld.w $a0, $a1, 0
163+
; LA64-NEXT: #NO_APP
164+
; LA64-NEXT: ret
165+
%1 = tail call i32 asm sideeffect "ld.w $0, $1", "=&r,*m"(ptr nonnull elementtype(i32) @g_i32)
166+
ret i32 %1
167+
}
168+
169+
define i32 @m_addr_should_not_fold() nounwind {
170+
; LA32-LABEL: m_addr_should_not_fold:
171+
; LA32: # %bb.0:
172+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
173+
; LA32-NEXT: addi.w $a1, $a0, %pc_lo12(g_i32)
174+
; LA32-NEXT: #APP
175+
; LA32-NEXT: ld.w $a0, $a1, 0
176+
; LA32-NEXT: #NO_APP
177+
; LA32-NEXT: ret
178+
;
179+
; LA64-LABEL: m_addr_should_not_fold:
180+
; LA64: # %bb.0:
181+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
182+
; LA64-NEXT: addi.d $a1, $a0, %pc_lo12(g_i32)
183+
; LA64-NEXT: #APP
184+
; LA64-NEXT: ld.w $a0, $a1, 0
185+
; LA64-NEXT: #NO_APP
186+
; LA64-NEXT: ret
187+
%1 = tail call i32 asm sideeffect "ld.w $0, $1, 0", "=&r,r,~{memory}"(ptr nonnull @g_i32)
188+
ret i32 %1
189+
}

0 commit comments

Comments
 (0)