@@ -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+
10851147define 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
11471240entry:
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