|
1 |
| -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 |
2 | 1 | ; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --post-RA-scheduler=0 < %s \
|
3 | 2 | ; RUN: | FileCheck %s --check-prefix=MEDIUM_NO_SCH
|
4 | 3 | ; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --post-RA-scheduler=1 < %s \
|
|
7 | 6 | ; RUN: | FileCheck %s --check-prefix=LARGE_NO_SCH
|
8 | 7 | ; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --post-RA-scheduler=1 < %s \
|
9 | 8 | ; RUN: | FileCheck %s --check-prefix=LARGE_SCH
|
| 9 | +; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --enable-tlsdesc \ |
| 10 | +; RUN: --post-RA-scheduler=0 < %s | FileCheck %s --check-prefix=MEDIUMDESC_NO_SCH |
| 11 | +; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --enable-tlsdesc \ |
| 12 | +; RUN: --post-RA-scheduler=1 < %s | FileCheck %s --check-prefix=MEDIUMDESC_SCH |
| 13 | +; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --enable-tlsdesc \ |
| 14 | +; RUN: --post-RA-scheduler=0 < %s | FileCheck %s --check-prefix=LARGEDESC_NO_SCH |
| 15 | +; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --enable-tlsdesc \ |
| 16 | +; RUN: --post-RA-scheduler=1 < %s | FileCheck %s --check-prefix=LARGEDESC_SCH |
10 | 17 |
|
11 | 18 | @g = dso_local global i64 zeroinitializer, align 4
|
12 | 19 | @G = global i64 zeroinitializer, align 4
|
@@ -194,3 +201,69 @@ define void @foo() nounwind {
|
194 | 201 | %v_ie = load volatile i64, ptr @ie
|
195 | 202 | ret void
|
196 | 203 | }
|
| 204 | + |
| 205 | +define void @baz() nounwind { |
| 206 | +; MEDIUMDESC_NO_SCH-LABEL: baz: |
| 207 | +; MEDIUMDESC_NO_SCH: # %bb.0: |
| 208 | +; MEDIUMDESC_NO_SCH-NEXT: addi.d $sp, $sp, -16 |
| 209 | +; MEDIUMDESC_NO_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill |
| 210 | +; MEDIUMDESC_NO_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd) |
| 211 | +; MEDIUMDESC_NO_SCH-NEXT: addi.d $a0, $a0, %desc_pc_lo12(gd) |
| 212 | +; MEDIUMDESC_NO_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd) |
| 213 | +; MEDIUMDESC_NO_SCH-NEXT: jirl $ra, $ra, %desc_call(gd) |
| 214 | +; MEDIUMDESC_NO_SCH-NEXT: add.d $a0, $a0, $tp |
| 215 | +; MEDIUMDESC_NO_SCH-NEXT: ld.d $zero, $a0, 0 |
| 216 | +; MEDIUMDESC_NO_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload |
| 217 | +; MEDIUMDESC_NO_SCH-NEXT: addi.d $sp, $sp, 16 |
| 218 | +; MEDIUMDESC_NO_SCH-NEXT: ret |
| 219 | +; |
| 220 | +; MEDIUMDESC_SCH-LABEL: baz: |
| 221 | +; MEDIUMDESC_SCH: # %bb.0: |
| 222 | +; MEDIUMDESC_SCH-NEXT: addi.d $sp, $sp, -16 |
| 223 | +; MEDIUMDESC_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill |
| 224 | +; MEDIUMDESC_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd) |
| 225 | +; MEDIUMDESC_SCH-NEXT: addi.d $a0, $a0, %desc_pc_lo12(gd) |
| 226 | +; MEDIUMDESC_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd) |
| 227 | +; MEDIUMDESC_SCH-NEXT: jirl $ra, $ra, %desc_call(gd) |
| 228 | +; MEDIUMDESC_SCH-NEXT: add.d $a0, $a0, $tp |
| 229 | +; MEDIUMDESC_SCH-NEXT: ld.d $zero, $a0, 0 |
| 230 | +; MEDIUMDESC_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload |
| 231 | +; MEDIUMDESC_SCH-NEXT: addi.d $sp, $sp, 16 |
| 232 | +; MEDIUMDESC_SCH-NEXT: ret |
| 233 | +; |
| 234 | +; LARGEDESC_NO_SCH-LABEL: baz: |
| 235 | +; LARGEDESC_NO_SCH: # %bb.0: |
| 236 | +; LARGEDESC_NO_SCH-NEXT: addi.d $sp, $sp, -16 |
| 237 | +; LARGEDESC_NO_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill |
| 238 | +; LARGEDESC_NO_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd) |
| 239 | +; LARGEDESC_NO_SCH-NEXT: addi.d $a1, $zero, %desc_pc_lo12(gd) |
| 240 | +; LARGEDESC_NO_SCH-NEXT: lu32i.d $a1, %desc64_pc_lo20(gd) |
| 241 | +; LARGEDESC_NO_SCH-NEXT: lu52i.d $a1, $a1, %desc64_pc_hi12(gd) |
| 242 | +; LARGEDESC_NO_SCH-NEXT: add.d $a0, $a0, $a1 |
| 243 | +; LARGEDESC_NO_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd) |
| 244 | +; LARGEDESC_NO_SCH-NEXT: jirl $ra, $ra, %desc_call(gd) |
| 245 | +; LARGEDESC_NO_SCH-NEXT: add.d $a0, $a0, $tp |
| 246 | +; LARGEDESC_NO_SCH-NEXT: ld.d $zero, $a0, 0 |
| 247 | +; LARGEDESC_NO_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload |
| 248 | +; LARGEDESC_NO_SCH-NEXT: addi.d $sp, $sp, 16 |
| 249 | +; LARGEDESC_NO_SCH-NEXT: ret |
| 250 | +; |
| 251 | +; LARGEDESC_SCH-LABEL: baz: |
| 252 | +; LARGEDESC_SCH: # %bb.0: |
| 253 | +; LARGEDESC_SCH-NEXT: addi.d $sp, $sp, -16 |
| 254 | +; LARGEDESC_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill |
| 255 | +; LARGEDESC_SCH-NEXT: addi.d $a1, $zero, %desc_pc_lo12(gd) |
| 256 | +; LARGEDESC_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd) |
| 257 | +; LARGEDESC_SCH-NEXT: lu32i.d $a1, %desc64_pc_lo20(gd) |
| 258 | +; LARGEDESC_SCH-NEXT: lu52i.d $a1, $a1, %desc64_pc_hi12(gd) |
| 259 | +; LARGEDESC_SCH-NEXT: add.d $a0, $a0, $a1 |
| 260 | +; LARGEDESC_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd) |
| 261 | +; LARGEDESC_SCH-NEXT: jirl $ra, $ra, %desc_call(gd) |
| 262 | +; LARGEDESC_SCH-NEXT: add.d $a0, $a0, $tp |
| 263 | +; LARGEDESC_SCH-NEXT: ld.d $zero, $a0, 0 |
| 264 | +; LARGEDESC_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload |
| 265 | +; LARGEDESC_SCH-NEXT: addi.d $sp, $sp, 16 |
| 266 | +; LARGEDESC_SCH-NEXT: ret |
| 267 | + %v_gd = load volatile i64, ptr @gd |
| 268 | + ret void |
| 269 | +} |
0 commit comments