Skip to content

Commit 4614b80

Browse files
committed
[LoongArch] Pre-commit tests for merge base with large offset. NFC
1 parent 69abfd3 commit 4614b80

File tree

1 file changed

+106
-13
lines changed

1 file changed

+106
-13
lines changed

llvm/test/CodeGen/LoongArch/merge-base-offset.ll

Lines changed: 106 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,6 +1082,68 @@ entry:
10821082
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 268432897)
10831083
}
10841084

1085+
define dso_local ptr @load_addr_offset_281474439839744() nounwind {
1086+
; LA32-LABEL: load_addr_offset_281474439839744:
1087+
; LA32: # %bb.0: # %entry
1088+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1089+
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
1090+
; LA32-NEXT: ret
1091+
;
1092+
; LA64-LABEL: load_addr_offset_281474439839744:
1093+
; LA64: # %bb.0: # %entry
1094+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1095+
; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
1096+
; LA64-NEXT: ori $a1, $zero, 0
1097+
; LA64-NEXT: lu32i.d $a1, 524287
1098+
; LA64-NEXT: add.d $a0, $a0, $a1
1099+
; LA64-NEXT: ret
1100+
;
1101+
; LA64-LARGE-LABEL: load_addr_offset_281474439839744:
1102+
; LA64-LARGE: # %bb.0: # %entry
1103+
; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1104+
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
1105+
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
1106+
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
1107+
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
1108+
; LA64-LARGE-NEXT: ori $a1, $zero, 0
1109+
; LA64-LARGE-NEXT: lu32i.d $a1, 524287
1110+
; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
1111+
; LA64-LARGE-NEXT: ret
1112+
entry:
1113+
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 281474439839744)
1114+
}
1115+
1116+
define dso_local ptr @load_addr_offset_248792680471040() nounwind {
1117+
; LA32-LABEL: load_addr_offset_248792680471040:
1118+
; LA32: # %bb.0: # %entry
1119+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2059194368)
1120+
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+2059194368)
1121+
; LA32-NEXT: ret
1122+
;
1123+
; LA64-LABEL: load_addr_offset_248792680471040:
1124+
; LA64: # %bb.0: # %entry
1125+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1126+
; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
1127+
; LA64-NEXT: lu12i.w $a1, 502733
1128+
; LA64-NEXT: lu32i.d $a1, 463412
1129+
; LA64-NEXT: add.d $a0, $a0, $a1
1130+
; LA64-NEXT: ret
1131+
;
1132+
; LA64-LARGE-LABEL: load_addr_offset_248792680471040:
1133+
; LA64-LARGE: # %bb.0: # %entry
1134+
; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1135+
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
1136+
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
1137+
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
1138+
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
1139+
; LA64-LARGE-NEXT: lu12i.w $a1, 502733
1140+
; LA64-LARGE-NEXT: lu32i.d $a1, 463412
1141+
; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
1142+
; LA64-LARGE-NEXT: ret
1143+
entry:
1144+
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 248792680471040)
1145+
}
1146+
10851147
define dso_local ptr @load_addr_offset_9380351707272() nounwind {
10861148
; LA32-LABEL: load_addr_offset_9380351707272:
10871149
; LA32: # %bb.0: # %entry
@@ -1115,35 +1177,66 @@ entry:
11151177
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 9380351707272)
11161178
}
11171179

1118-
define dso_local ptr @load_addr_offset_614750729487779976() nounwind {
1119-
; LA32-LABEL: load_addr_offset_614750729487779976:
1180+
define dso_local ptr @load_addr_offset_562949953421312() nounwind {
1181+
; LA32-LABEL: load_addr_offset_562949953421312:
11201182
; LA32: # %bb.0: # %entry
1121-
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+1145062464)
1122-
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+1145062464)
1183+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1184+
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
11231185
; LA32-NEXT: ret
11241186
;
1125-
; LA64-LABEL: load_addr_offset_614750729487779976:
1187+
; LA64-LABEL: load_addr_offset_562949953421312:
11261188
; LA64: # %bb.0: # %entry
11271189
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
11281190
; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
1129-
; LA64-NEXT: lu12i.w $a1, 279556
1130-
; LA64-NEXT: ori $a1, $a1, 1088
1131-
; LA64-NEXT: bstrins.d $a1, $a1, 62, 32
1191+
; LA64-NEXT: lu52i.d $a1, $zero, 1
11321192
; LA64-NEXT: add.d $a0, $a0, $a1
11331193
; LA64-NEXT: ret
11341194
;
1135-
; LA64-LARGE-LABEL: load_addr_offset_614750729487779976:
1195+
; LA64-LARGE-LABEL: load_addr_offset_562949953421312:
11361196
; LA64-LARGE: # %bb.0: # %entry
11371197
; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
11381198
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
11391199
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
11401200
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
11411201
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
1142-
; LA64-LARGE-NEXT: lu12i.w $a1, 279556
1143-
; LA64-LARGE-NEXT: ori $a1, $a1, 1088
1144-
; LA64-LARGE-NEXT: bstrins.d $a1, $a1, 62, 32
1202+
; LA64-LARGE-NEXT: lu52i.d $a1, $zero, 1
1203+
; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
1204+
; LA64-LARGE-NEXT: ret
1205+
entry:
1206+
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 562949953421312)
1207+
}
1208+
1209+
define dso_local ptr @load_addr_offset_614749556925924693() nounwind {
1210+
; LA32-LABEL: load_addr_offset_614749556925924693:
1211+
; LA32: # %bb.0: # %entry
1212+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+858794664)
1213+
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+858794664)
1214+
; LA32-NEXT: ret
1215+
;
1216+
; LA64-LABEL: load_addr_offset_614749556925924693:
1217+
; LA64: # %bb.0: # %entry
1218+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1219+
; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
1220+
; LA64-NEXT: lu12i.w $a1, 209666
1221+
; LA64-NEXT: ori $a1, $a1, 2728
1222+
; LA64-NEXT: lu32i.d $a1, 15288
1223+
; LA64-NEXT: lu52i.d $a1, $a1, 1092
1224+
; LA64-NEXT: add.d $a0, $a0, $a1
1225+
; LA64-NEXT: ret
1226+
;
1227+
; LA64-LARGE-LABEL: load_addr_offset_614749556925924693:
1228+
; LA64-LARGE: # %bb.0: # %entry
1229+
; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
1230+
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
1231+
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
1232+
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
1233+
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
1234+
; LA64-LARGE-NEXT: lu12i.w $a1, 209666
1235+
; LA64-LARGE-NEXT: ori $a1, $a1, 2728
1236+
; LA64-LARGE-NEXT: lu32i.d $a1, 15288
1237+
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, 1092
11451238
; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
11461239
; LA64-LARGE-NEXT: ret
11471240
entry:
1148-
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 614750729487779976)
1241+
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 614749556925924693)
11491242
}

0 commit comments

Comments
 (0)