255 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs -run-pass=aarch64-ldst-opt %s -o - | FileCheck %s3 4 5---6name: merge_unscaled_str_with_unscaled_str_87body: |8 bb.0:9 ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_str_810 ; CHECK: STURHHi $wzr, $x0, 4 :: (store (s8))11 ; CHECK-NEXT: RET undef $lr12 STURBBi $wzr, $x0, 4 :: (store (s8))13 STURBBi $wzr, $x0, 5 :: (store (s8))14 RET undef $lr15...16---17name: merge_scaled_str_with_scaled_str_818body: |19 bb.0.entry:20 ; CHECK-LABEL: name: merge_scaled_str_with_scaled_str_821 ; CHECK: STRHHui $wzr, $x0, 2 :: (store (s8))22 ; CHECK-NEXT: RET undef $lr23 STRBBui $wzr, $x0, 4 :: (store (s8))24 STRBBui $wzr, $x0, 5 :: (store (s8))25 RET undef $lr26...27---28name: merge_scaled_str_with_unscaled_829body: |30 bb.0.entry:31 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_832 ; CHECK: STRHHui $wzr, $x0, 2 :: (store (s8))33 ; CHECK-NEXT: RET undef $lr34 STRBBui $wzr, $x0, 4 :: (store (s8))35 STURBBi $wzr, $x0, 5 :: (store (s8))36 RET undef $lr37...38---39name: merge_unscaled_str_with_scaled_840body: |41 bb.0.entry:42 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_843 ; CHECK: STURHHi $wzr, $x0, 4 :: (store (s8))44 ; CHECK-NEXT: RET undef $lr45 STURBBi $wzr, $x0, 4 :: (store (s8))46 STRBBui $wzr, $x0, 5 :: (store (s8))47 RET undef $lr48...49---50name: merge_unscaled_str_with_scaled_8_lower_address_second51body: |52 bb.0.entry:53 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_8_lower_address_second54 ; CHECK: STURHHi $wzr, $x0, 0 :: (store (s8))55 ; CHECK-NEXT: RET undef $lr56 STURBBi $wzr, $x0, 1 :: (store (s8))57 STRBBui $wzr, $x0, 0 :: (store (s8))58 RET undef $lr59...60---61name: merge_scaled_str_with_unscaled_8_lower_address_second62body: |63 bb.0.entry:64 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_8_lower_address_second65 ; CHECK: STRHHui $wzr, $x0, 0 :: (store (s8))66 ; CHECK-NEXT: RET undef $lr67 STRBBui $wzr, $x0, 1 :: (store (s8))68 STURBBi $wzr, $x0, 0 :: (store (s8))69 RET undef $lr70...71---72name: merge_unscaled_str_with_scaled_8_limits73body: |74 bb.0.entry:75 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_8_limits76 ; CHECK: STURHHi $wzr, $x0, 255 :: (store (s8))77 ; CHECK-NEXT: RET undef $lr78 STURBBi $wzr, $x0, 255 :: (store (s8))79 STRBBui $wzr, $x0, 256 :: (store (s8))80 RET undef $lr81---82---83name: merge_scaled_str_with_unscaled_8_limits84body: |85 bb.0.entry:86 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_8_limits87 ; CHECK: STRHHui $wzr, $x0, 127 :: (store (s8))88 ; CHECK-NEXT: RET undef $lr89 STRBBui $wzr, $x0, 254 :: (store (s8))90 STURBBi $wzr, $x0, 255 :: (store (s8))91 RET undef $lr92---93name: merge_unscaled_str_with_unscaled_str_1694body: |95 bb.0:96 ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_str_1697 ; CHECK: STURWi $wzr, $x0, 4 :: (store (s16))98 ; CHECK-NEXT: RET undef $lr99 STURHHi $wzr, $x0, 4 :: (store (s16))100 STURHHi $wzr, $x0, 6 :: (store (s16))101 RET undef $lr102...103---104name: merge_scaled_str_with_scaled_str_16105body: |106 bb.0.entry:107 ; CHECK-LABEL: name: merge_scaled_str_with_scaled_str_16108 ; CHECK: STRWui $wzr, $x0, 2 :: (store (s16))109 ; CHECK-NEXT: RET undef $lr110 STRHHui $wzr, $x0, 4 :: (store (s16))111 STRHHui $wzr, $x0, 5 :: (store (s16))112 RET undef $lr113...114---115name: merge_scaled_str_with_unscaled_16116body: |117 bb.0.entry:118 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16119 ; CHECK: STRWui $wzr, $x0, 1 :: (store (s16))120 ; CHECK-NEXT: RET undef $lr121 STRHHui $wzr, $x0, 2 :: (store (s16))122 STURHHi $wzr, $x0, 6 :: (store (s16))123 RET undef $lr124...125---126name: merge_unscaled_str_with_scaled_16127body: |128 bb.0.entry:129 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16130 ; CHECK: STURWi $wzr, $x0, 4 :: (store (s16))131 ; CHECK-NEXT: RET undef $lr132 STURHHi $wzr, $x0, 4 :: (store (s16))133 STRHHui $wzr, $x0, 3 :: (store (s16))134 RET undef $lr135...136---137name: merge_unscaled_str_with_scaled_16_lower_address_second138body: |139 bb.0.entry:140 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16_lower_address_second141 ; CHECK: STURWi $wzr, $x0, 2 :: (store (s16))142 ; CHECK-NEXT: RET undef $lr143 STURHHi $wzr, $x0, 4 :: (store (s16))144 STRHHui $wzr, $x0, 1 :: (store (s16))145 RET undef $lr146...147---148name: merge_scaled_str_with_unscaled_16_lower_address_second149body: |150 bb.0.entry:151 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16_lower_address_second152 ; CHECK: STRWui $wzr, $x0, 0 :: (store (s16))153 ; CHECK-NEXT: RET undef $lr154 STRHHui $wzr, $x0, 1 :: (store (s16))155 STURHHi $wzr, $x0, 0 :: (store (s16))156 RET undef $lr157...158---159name: merge_unscaled_str_with_scaled_16_limits160body: |161 bb.0.entry:162 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16_limits163 ; CHECK: STURWi $wzr, $x0, 254 :: (store (s16))164 ; CHECK-NEXT: RET undef $lr165 STURHHi $wzr, $x0, 254 :: (store (s16))166 STRHHui $wzr, $x0, 128 :: (store (s16))167 RET undef $lr168---169---170name: merge_scaled_str_with_unscaled_16_limits171body: |172 bb.0.entry:173 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16_limits174 ; CHECK: STRWui $wzr, $x0, 63 :: (store (s16))175 ; CHECK-NEXT: RET undef $lr176 STRHHui $wzr, $x0, 126 :: (store (s16))177 STURHHi $wzr, $x0, 254 :: (store (s16))178 RET undef $lr179---180name: merge_unscaled_str_with_unscaled_32181body: |182 bb.0.entry:183 ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_32184 ; CHECK: STURXi $xzr, $x0, 4 :: (store (s32))185 ; CHECK-NEXT: RET undef $lr186 STURWi $wzr, $x0, 4 :: (store (s32))187 STURWi $wzr, $x0, 8 :: (store (s32))188 RET undef $lr189...190---191name: merge_scaled_str_with_scaled_32192body: |193 bb.0.entry:194 ; CHECK-LABEL: name: merge_scaled_str_with_scaled_32195 ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))196 ; CHECK-NEXT: RET undef $lr197 STRWui $wzr, $x0, 2 :: (store (s32))198 STRWui $wzr, $x0, 3 :: (store (s32))199 RET undef $lr200...201---202name: merge_scaled_str_with_unscaled_32203body: |204 bb.0.entry:205 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32206 ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))207 ; CHECK-NEXT: RET undef $lr208 STRWui $wzr, $x0, 2 :: (store (s32))209 STURWi $wzr, $x0, 12 :: (store (s32))210 RET undef $lr211...212---213name: merge_unscaled_str_with_scaled_32214body: |215 bb.0.entry:216 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_32217 ; CHECK: STURXi $xzr, $x0, 8 :: (store (s32))218 ; CHECK-NEXT: RET undef $lr219 STURWi $wzr, $x0, 8 :: (store (s32))220 STRWui $wzr, $x0, 3 :: (store (s32))221 RET undef $lr222...223---224name: merge_scaled_str_with_unscaled_32_lower_address_second225body: |226 bb.0.entry:227 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32_lower_address_second228 ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))229 ; CHECK-NEXT: RET undef $lr230 STRWui $wzr, $x0, 3 :: (store (s32))231 STURWi $wzr, $x0, 8 :: (store (s32))232 RET undef $lr233...234---235name: merge_unscaled_str_with_scaled_32_lower_address_second236body: |237 bb.0.entry:238 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_32_lower_address_second239 ; CHECK: STURXi $xzr, $x0, 4 :: (store (s32))240 ; CHECK-NEXT: RET undef $lr241 STURWi $wzr, $x0, 8 :: (store (s32))242 STRWui $wzr, $x0, 1 :: (store (s32))243 RET undef $lr244...245---246name: merge_scaled_str_with_unscaled_32_negative_address247body: |248 bb.0.entry:249 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32_negative_address250 ; CHECK: STPWi $wzr, $wzr, $x0, -1 :: (store (s32))251 ; CHECK-NEXT: RET undef $lr252 STRWui $wzr, $x0, 0 :: (store (s32))253 STURWi $wzr, $x0, -4 :: (store (s32))254 RET undef $lr255