91 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass aarch64-ldst-opt %s -o - | FileCheck %s3 4 5---6name: LdOffset7tracksRegLiveness: true8liveins:9 - { reg: '$x0', virtual-reg: '' }10body: |11 bb.0.entry:12 liveins: $x013 14 ; CHECK-LABEL: name: LdOffset15 ; CHECK: liveins: $x016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: $x8 = ADDXri $x0, 253, 1218 ; CHECK-NEXT: renamable $w0 = LDRBBui killed renamable $x8, 370419 ; CHECK-NEXT: RET undef $lr, implicit $w020 renamable $w8 = MOVZWi 56952, 021 renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x822 renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 023 RET undef $lr, implicit $w024...25 26# Negative test: the IndexReg missing killed flags27---28name: LdOffset_missing_killed29tracksRegLiveness: true30liveins:31 - { reg: '$x0', virtual-reg: '' }32body: |33 bb.0.entry:34 liveins: $x035 36 ; CHECK-LABEL: name: LdOffset_missing_killed37 ; CHECK: liveins: $x038 ; CHECK-NEXT: {{ $}}39 ; CHECK-NEXT: renamable $w8 = MOVZWi 56952, 040 ; CHECK-NEXT: renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x841 ; CHECK-NEXT: renamable $w0 = LDRBBroX killed renamable $x0, renamable $x8, 0, 042 ; CHECK-NEXT: RET undef $lr, implicit $w043 renamable $w8 = MOVZWi 56952, 044 renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x845 renamable $w0 = LDRBBroX killed renamable $x0, renamable $x8, 0, 046 RET undef $lr, implicit $w047...48 49# Negative test: No MOVZWi used for the const offset50---51name: LdOffset_missing_MOVZ52tracksRegLiveness: true53liveins:54 - { reg: '$x0', virtual-reg: '' }55body: |56 bb.0.entry:57 liveins: $x058 59 ; CHECK-LABEL: name: LdOffset_missing_MOVZ60 ; CHECK: liveins: $x061 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x863 ; CHECK-NEXT: renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 064 ; CHECK-NEXT: RET undef $lr, implicit $w065 renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x866 renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 067 RET undef $lr, implicit $w068...69 70# Negative test: MOVZWi and MOVKWi don't set the same register71---72name: LdOffset_different_register_MOVZ_MOVK73tracksRegLiveness: true74liveins:75 - { reg: '$x0', virtual-reg: '' }76body: |77 bb.0.entry:78 liveins: $x079 80 ; CHECK-LABEL: name: LdOffset_different_register_MOVZ_MOVK81 ; CHECK: liveins: $x082 ; CHECK-NEXT: {{ $}}83 ; CHECK-NEXT: renamable $w7 = MOVZWi 56952, 084 ; CHECK-NEXT: renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x885 ; CHECK-NEXT: renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 086 ; CHECK-NEXT: RET undef $lr, implicit $w087 renamable $w7 = MOVZWi 56952, 088 renamable $w8 = MOVKWi $w8, 15, 16, implicit-def $x889 renamable $w0 = LDRBBroX killed renamable $x0, killed renamable $x8, 0, 090 RET undef $lr, implicit $w091