brintos

brintos / llvm-project-archived public Read only

0
0
Text · 25.1 KiB · 2a7e8a4 Raw
294 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -run-pass=prologepilog -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s3#4# Test that prologepilog works for each of the LDNF1 instructions for stack-based objects.5#6--- |7  define void @testcase_positive_offset() uwtable {8    %dummy = alloca <vscale x 2 x i64>, align 89    %object = alloca <vscale x 2 x i64>, align 810    ; Reads from %object at offset 63 * readsize11    ret void12  }13  define void @testcase_negative_offset() uwtable {14    %dummy = alloca <vscale x 2 x i64>, align 815    %object = alloca <vscale x 2 x i64>, align 816    ; Reads from %object at offset 63 * readsize17    ret void18  }19 20  define void @testcase_positive_offset_out_of_range() uwtable {21    %dummy = alloca <vscale x 2 x i64>, align 822    %object = alloca <vscale x 2 x i64>, align 823    ; Reads from %object at offset 64 * readsize24    ret void25  }26  define void @testcase_negative_offset_out_of_range() uwtable {27    %dummy = alloca <vscale x 2 x i64>, align 828    %object = alloca <vscale x 2 x i64>, align 829    ; Reads from %object at offset -1 * readsize30    ret void31  }32...33---34name:            testcase_positive_offset35tracksRegLiveness: true36stack:37  - { id: 0, name: dummy, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }38  - { id: 1, name: object, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }39body:             |40  bb.0 (%ir-block.0):41    liveins: $p042 43    ; CHECK-LABEL: name: testcase_positive_offset44    ; CHECK: liveins: $p0, $fp45    ; CHECK-NEXT: {{  $}}46    ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $fp, $sp, -16 :: (store (s64) into %stack.2)47    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 1648    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w29, -1649    ; CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -4, implicit $vg50    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x2251    ; CHECK-NEXT: renamable $z0 = LDNF1B_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)52    ; CHECK-NEXT: renamable $z0 = LDNF1B_H_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)53    ; CHECK-NEXT: renamable $z0 = LDNF1B_S_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)54    ; CHECK-NEXT: renamable $z0 = LDNF1B_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)55    ; CHECK-NEXT: renamable $z0 = LDNF1SB_H_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)56    ; CHECK-NEXT: renamable $z0 = LDNF1SB_S_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)57    ; CHECK-NEXT: renamable $z0 = LDNF1SB_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)58    ; CHECK-NEXT: renamable $z0 = LDNF1H_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)59    ; CHECK-NEXT: renamable $z0 = LDNF1H_S_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)60    ; CHECK-NEXT: renamable $z0 = LDNF1H_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)61    ; CHECK-NEXT: renamable $z0 = LDNF1SH_S_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)62    ; CHECK-NEXT: renamable $z0 = LDNF1SH_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)63    ; CHECK-NEXT: renamable $z0 = LDNF1W_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)64    ; CHECK-NEXT: renamable $z0 = LDNF1W_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)65    ; CHECK-NEXT: renamable $z0 = LDNF1SW_D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)66    ; CHECK-NEXT: renamable $z0 = LDNF1D_IMM renamable $p0, $sp, 7, implicit $ffr, implicit-def $ffr :: (load (s64) from %ir.object)67    ; CHECK-NEXT: $sp = frame-destroy ADDVL_XXI $sp, 4, implicit $vg68    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $wsp, 1669    ; CHECK-NEXT: early-clobber $sp, $fp = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.2)70    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 071    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w2972    ; CHECK-NEXT: RET_ReallyLR implicit $z073    renamable $z0 = LDNF1B_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)74    renamable $z0 = LDNF1B_H_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)75    renamable $z0 = LDNF1B_S_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)76    renamable $z0 = LDNF1B_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)77    renamable $z0 = LDNF1SB_H_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)78    renamable $z0 = LDNF1SB_S_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)79    renamable $z0 = LDNF1SB_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)80    renamable $z0 = LDNF1H_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)81    renamable $z0 = LDNF1H_S_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)82    renamable $z0 = LDNF1H_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)83    renamable $z0 = LDNF1SH_S_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)84    renamable $z0 = LDNF1SH_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)85    renamable $z0 = LDNF1W_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)86    renamable $z0 = LDNF1W_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)87    renamable $z0 = LDNF1SW_D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)88    renamable $z0 = LDNF1D_IMM renamable $p0, %stack.1.object, 7, implicit $ffr, implicit-def $ffr :: (load 8 from %ir.object, align 8)89    RET_ReallyLR implicit $z090...91 92---93name:            testcase_negative_offset94tracksRegLiveness: true95stack:96  - { id: 0, name: dummy, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }97  - { id: 1, name: object, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }98body:             |99  bb.0 (%ir-block.0):100    liveins: $p0101 102    ; CHECK-LABEL: name: testcase_negative_offset103    ; CHECK: liveins: $p0, $fp104    ; CHECK-NEXT: {{  $}}105    ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $fp, $sp, -16 :: (store (s64) into %stack.2)106    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16107    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w29, -16108    ; CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -4, implicit $vg109    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22110    ; CHECK-NEXT: renamable $z0 = LDNF1B_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)111    ; CHECK-NEXT: renamable $z0 = LDNF1B_H_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)112    ; CHECK-NEXT: renamable $z0 = LDNF1B_S_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)113    ; CHECK-NEXT: renamable $z0 = LDNF1B_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)114    ; CHECK-NEXT: renamable $z0 = LDNF1SB_H_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)115    ; CHECK-NEXT: renamable $z0 = LDNF1SB_S_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)116    ; CHECK-NEXT: renamable $z0 = LDNF1SB_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)117    ; CHECK-NEXT: renamable $z0 = LDNF1H_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)118    ; CHECK-NEXT: renamable $z0 = LDNF1H_S_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)119    ; CHECK-NEXT: renamable $z0 = LDNF1H_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)120    ; CHECK-NEXT: renamable $z0 = LDNF1SH_S_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)121    ; CHECK-NEXT: renamable $z0 = LDNF1SH_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)122    ; CHECK-NEXT: renamable $z0 = LDNF1W_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)123    ; CHECK-NEXT: renamable $z0 = LDNF1W_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)124    ; CHECK-NEXT: renamable $z0 = LDNF1SW_D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)125    ; CHECK-NEXT: renamable $z0 = LDNF1D_IMM renamable $p0, $sp, -8, implicit $ffr, implicit-def $ffr :: (load (s64) from %ir.object)126    ; CHECK-NEXT: $sp = frame-destroy ADDVL_XXI $sp, 4, implicit $vg127    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $wsp, 16128    ; CHECK-NEXT: early-clobber $sp, $fp = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.2)129    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0130    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w29131    ; CHECK-NEXT: RET_ReallyLR implicit $z0132    renamable $z0 = LDNF1B_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)133    renamable $z0 = LDNF1B_H_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)134    renamable $z0 = LDNF1B_S_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)135    renamable $z0 = LDNF1B_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)136    renamable $z0 = LDNF1SB_H_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)137    renamable $z0 = LDNF1SB_S_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)138    renamable $z0 = LDNF1SB_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)139    renamable $z0 = LDNF1H_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)140    renamable $z0 = LDNF1H_S_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)141    renamable $z0 = LDNF1H_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)142    renamable $z0 = LDNF1SH_S_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)143    renamable $z0 = LDNF1SH_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)144    renamable $z0 = LDNF1W_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)145    renamable $z0 = LDNF1W_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)146    renamable $z0 = LDNF1SW_D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)147    renamable $z0 = LDNF1D_IMM renamable $p0, %stack.1.object, -8, implicit $ffr, implicit-def $ffr :: (load 8 from %ir.object, align 8)148    RET_ReallyLR implicit $z0149...150 151---152name:            testcase_positive_offset_out_of_range153tracksRegLiveness: true154stack:155  - { id: 0, name: dummy, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }156  - { id: 1, name: object, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }157body:             |158  bb.0 (%ir-block.0):159    liveins: $p0160 161    ; CHECK-LABEL: name: testcase_positive_offset_out_of_range162    ; CHECK: liveins: $p0, $fp163    ; CHECK-NEXT: {{  $}}164    ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $fp, $sp, -16 :: (store (s64) into %stack.2)165    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16166    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w29, -16167    ; CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -4, implicit $vg168    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22169    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, 1, implicit $vg170    ; CHECK-NEXT: renamable $z0 = LDNF1B_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)171    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg172    ; CHECK-NEXT: renamable $z0 = LDNF1B_H_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)173    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 2, implicit $vg174    ; CHECK-NEXT: renamable $z0 = LDNF1B_S_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)175    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 1, implicit $vg176    ; CHECK-NEXT: renamable $z0 = LDNF1B_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)177    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg178    ; CHECK-NEXT: renamable $z0 = LDNF1SB_H_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)179    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 2, implicit $vg180    ; CHECK-NEXT: renamable $z0 = LDNF1SB_S_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)181    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 1, implicit $vg182    ; CHECK-NEXT: renamable $z0 = LDNF1SB_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)183    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, 1, implicit $vg184    ; CHECK-NEXT: renamable $z0 = LDNF1H_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)185    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg186    ; CHECK-NEXT: renamable $z0 = LDNF1H_S_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)187    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 2, implicit $vg188    ; CHECK-NEXT: renamable $z0 = LDNF1H_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)189    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg190    ; CHECK-NEXT: renamable $z0 = LDNF1SH_S_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)191    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 2, implicit $vg192    ; CHECK-NEXT: renamable $z0 = LDNF1SH_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)193    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, 1, implicit $vg194    ; CHECK-NEXT: renamable $z0 = LDNF1W_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)195    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg196    ; CHECK-NEXT: renamable $z0 = LDNF1W_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)197    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, 4, implicit $vg198    ; CHECK-NEXT: renamable $z0 = LDNF1SW_D_IMM renamable $p0, killed $x8, 7, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)199    ; CHECK-NEXT: $sp = frame-destroy ADDVL_XXI $sp, 4, implicit $vg200    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $wsp, 16201    ; CHECK-NEXT: early-clobber $sp, $fp = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.2)202    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0203    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w29204    ; CHECK-NEXT: RET_ReallyLR implicit $z0205    renamable $z0 = LDNF1B_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)206    renamable $z0 = LDNF1B_H_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)207    renamable $z0 = LDNF1B_S_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)208    renamable $z0 = LDNF1B_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)209    renamable $z0 = LDNF1SB_H_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)210    renamable $z0 = LDNF1SB_S_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)211    renamable $z0 = LDNF1SB_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)212    renamable $z0 = LDNF1H_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)213    renamable $z0 = LDNF1H_S_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)214    renamable $z0 = LDNF1H_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)215    renamable $z0 = LDNF1SH_S_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)216    renamable $z0 = LDNF1SH_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)217    renamable $z0 = LDNF1W_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)218    renamable $z0 = LDNF1W_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)219    renamable $z0 = LDNF1SW_D_IMM renamable $p0, %stack.1.object, 8, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)220    RET_ReallyLR implicit $z0221...222 223---224name:            testcase_negative_offset_out_of_range225tracksRegLiveness: true226stack:227  - { id: 0, name: dummy, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }228  - { id: 1, name: object, type: default, offset: 0, size: 32, alignment: 16, stack-id: scalable-vector }229body:             |230  bb.0 (%ir-block.0):231    liveins: $p0232 233    ; CHECK-LABEL: name: testcase_negative_offset_out_of_range234    ; CHECK: liveins: $p0, $fp235    ; CHECK-NEXT: {{  $}}236    ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $fp, $sp, -16 :: (store (s64) into %stack.2)237    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16238    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w29, -16239    ; CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -4, implicit $vg240    ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22241    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, -1, implicit $vg242    ; CHECK-NEXT: renamable $z0 = LDNF1B_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)243    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg244    ; CHECK-NEXT: renamable $z0 = LDNF1B_H_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)245    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -2, implicit $vg246    ; CHECK-NEXT: renamable $z0 = LDNF1B_S_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)247    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -1, implicit $vg248    ; CHECK-NEXT: renamable $z0 = LDNF1B_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)249    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg250    ; CHECK-NEXT: renamable $z0 = LDNF1SB_H_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)251    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -2, implicit $vg252    ; CHECK-NEXT: renamable $z0 = LDNF1SB_S_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)253    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -1, implicit $vg254    ; CHECK-NEXT: renamable $z0 = LDNF1SB_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s8) from %ir.object, align 2)255    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, -1, implicit $vg256    ; CHECK-NEXT: renamable $z0 = LDNF1H_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)257    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg258    ; CHECK-NEXT: renamable $z0 = LDNF1H_S_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)259    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -2, implicit $vg260    ; CHECK-NEXT: renamable $z0 = LDNF1H_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)261    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg262    ; CHECK-NEXT: renamable $z0 = LDNF1SH_S_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)263    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -2, implicit $vg264    ; CHECK-NEXT: renamable $z0 = LDNF1SH_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s16) from %ir.object)265    ; CHECK-NEXT: $x8 = ADDVL_XXI $sp, -1, implicit $vg266    ; CHECK-NEXT: renamable $z0 = LDNF1W_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)267    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg268    ; CHECK-NEXT: renamable $z0 = LDNF1W_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)269    ; CHECK-NEXT: $x8 = ADDPL_XXI $sp, -4, implicit $vg270    ; CHECK-NEXT: renamable $z0 = LDNF1SW_D_IMM renamable $p0, killed $x8, -8, implicit $ffr, implicit-def $ffr :: (load (s32) from %ir.object, align 8)271    ; CHECK-NEXT: $sp = frame-destroy ADDVL_XXI $sp, 4, implicit $vg272    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa $wsp, 16273    ; CHECK-NEXT: early-clobber $sp, $fp = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.2)274    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0275    ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w29276    ; CHECK-NEXT: RET_ReallyLR implicit $z0277    renamable $z0 = LDNF1B_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)278    renamable $z0 = LDNF1B_H_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)279    renamable $z0 = LDNF1B_S_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)280    renamable $z0 = LDNF1B_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)281    renamable $z0 = LDNF1SB_H_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)282    renamable $z0 = LDNF1SB_S_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)283    renamable $z0 = LDNF1SB_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 1 from %ir.object, align 2)284    renamable $z0 = LDNF1H_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)285    renamable $z0 = LDNF1H_S_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)286    renamable $z0 = LDNF1H_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)287    renamable $z0 = LDNF1SH_S_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)288    renamable $z0 = LDNF1SH_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 2 from %ir.object, align 2)289    renamable $z0 = LDNF1W_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)290    renamable $z0 = LDNF1W_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)291    renamable $z0 = LDNF1SW_D_IMM renamable $p0, %stack.1.object, -9, implicit $ffr, implicit-def $ffr :: (load 4 from %ir.object, align 8)292    RET_ReallyLR implicit $z0293...294