brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.5 KiB · ae28641 Raw
249 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -O0 -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s3---4name:            combine_unmerge_from_unmerge_of_concat_tree5alignment:       46tracksRegLiveness: true7body:             |8  bb.1:9  liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x010    ; CHECK-LABEL: name: combine_unmerge_from_unmerge_of_concat_tree11    ; CHECK: liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x012    ; CHECK-NEXT: {{  $}}13    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x014    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x115    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x216    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d017    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $d118    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $d219    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $d320    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $d421    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $d522    ; CHECK-NEXT: %v2s64_val:_(<2 x s64>) = G_BUILD_VECTOR [[COPY5]](s64), [[COPY6]](s64)23    ; CHECK-NEXT: %v2s64_val2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY8]](s64)24    ; CHECK-NEXT: G_STORE %v2s64_val(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))25    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))26    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))27    ; CHECK-NEXT: RET_ReallyLR28  %0:_(s64)  = COPY $x029  %1:_(s64)  = COPY $x130  %2:_(p0)  = COPY $x231  %3:_(s64) = COPY $d032  %4:_(s64) = COPY $d133  %5:_(s64) = COPY $d234  %6:_(s64) = COPY $d335  %7:_(s64) = COPY $d436  %8:_(s64) = COPY $d537  %v2s64_val = G_BUILD_VECTOR %5:_(s64), %6:_(s64)38  %v2s64_val2 = G_BUILD_VECTOR %6:_(s64), %8:_(s64)39  %v4s64_val1:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val:_(<2 x s64>), %v2s64_val2:_(<2 x s64>)40  %v4s64_val2:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val2:_(<2 x s64>), %v2s64_val:_(<2 x s64>)41  %v8s64_undef:_(<8 x s64>) = G_IMPLICIT_DEF42  %concat1:_(<8 x s64>) = G_CONCAT_VECTORS %v4s64_val1:_(<4 x s64>), %v4s64_val2:_(<4 x s64>)43  %bigconcat:_(<24 x s64>) = G_CONCAT_VECTORS %concat1:_(<8 x s64>), %v8s64_undef:_(<8 x s64>), %v8s64_undef:_(<8 x s64>)44 45  %unmerge1:_(<6 x s64>), %deaddef1:_(<6 x s64>), %deaddef2:_(<6 x s64>), %deaddef3:_(<6 x s64>) = G_UNMERGE_VALUES %bigconcat:_(<24 x s64>)46  %val1:_(<2 x s64>), %val2:_(<2 x s64>), %val3:_(<2 x s64>) = G_UNMERGE_VALUES %unmerge1:_(<6 x s64>)47 48  G_STORE %val1:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))49  G_STORE %val2:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))50  G_STORE %val3:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))51  RET_ReallyLR52 53...54 55---56name:            combine_unmerge_from_unmerge_of_concat_tree_high_bits57alignment:       458tracksRegLiveness: true59body:             |60  bb.1:61  liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x062    ; CHECK-LABEL: name: combine_unmerge_from_unmerge_of_concat_tree_high_bits63    ; CHECK: liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x064    ; CHECK-NEXT: {{  $}}65    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x066    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x167    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x268    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d069    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $d170    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $d271    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $d372    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $d473    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $d574    ; CHECK-NEXT: %v2s64_val:_(<2 x s64>) = G_BUILD_VECTOR [[COPY5]](s64), [[COPY6]](s64)75    ; CHECK-NEXT: %v2s64_val2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY8]](s64)76    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))77    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))78    ; CHECK-NEXT: G_STORE %v2s64_val(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))79    ; CHECK-NEXT: RET_ReallyLR80  %0:_(s64)  = COPY $x081  %1:_(s64)  = COPY $x182  %2:_(p0)  = COPY $x283  %3:_(s64) = COPY $d084  %4:_(s64) = COPY $d185  %5:_(s64) = COPY $d286  %6:_(s64) = COPY $d387  %7:_(s64) = COPY $d488  %8:_(s64) = COPY $d589  %v2s64_val = G_BUILD_VECTOR %5:_(s64), %6:_(s64)90  %v2s64_val2 = G_BUILD_VECTOR %6:_(s64), %8:_(s64)91  %v4s64_val1:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val:_(<2 x s64>), %v2s64_val2:_(<2 x s64>)92  %v4s64_val2:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val2:_(<2 x s64>), %v2s64_val:_(<2 x s64>)93  %v8s64_undef:_(<8 x s64>) = G_IMPLICIT_DEF94  %concat1:_(<8 x s64>) = G_CONCAT_VECTORS %v4s64_val1:_(<4 x s64>), %v4s64_val2:_(<4 x s64>)95  %bigconcat:_(<24 x s64>) = G_CONCAT_VECTORS %v8s64_undef:_(<8 x s64>), %v8s64_undef:_(<8 x s64>), %concat1:_(<8 x s64>)96 97  %deaddef1:_(<6 x s64>), %deaddef2:_(<6 x s64>), %deaddef3:_(<6 x s64>), %unmerge1:_(<6 x s64>) = G_UNMERGE_VALUES %bigconcat:_(<24 x s64>)98  %val1:_(<2 x s64>), %val2:_(<2 x s64>), %val3:_(<2 x s64>) = G_UNMERGE_VALUES %unmerge1:_(<6 x s64>)99 100  G_STORE %val1:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))101  G_STORE %val2:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))102  G_STORE %val3:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))103  RET_ReallyLR104 105...106---107name:            combine_unmerge_from_insert_into_low108alignment:       4109tracksRegLiveness: true110body:             |111  bb.1:112  liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0113    ; CHECK-LABEL: name: combine_unmerge_from_insert_into_low114    ; CHECK: liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0115    ; CHECK-NEXT: {{  $}}116    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0117    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1118    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2119    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d0120    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $d1121    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $d2122    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $d3123    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $d4124    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $d5125    ; CHECK-NEXT: %v2s64_val:_(<2 x s64>) = G_BUILD_VECTOR [[COPY5]](s64), [[COPY6]](s64)126    ; CHECK-NEXT: %v2s64_val2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY8]](s64)127    ; CHECK-NEXT: G_STORE %v2s64_val(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))128    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))129    ; CHECK-NEXT: RET_ReallyLR130  %0:_(s64)  = COPY $x0131  %1:_(s64)  = COPY $x1132  %2:_(p0)  = COPY $x2133  %3:_(s64) = COPY $d0134  %4:_(s64) = COPY $d1135  %5:_(s64) = COPY $d2136  %6:_(s64) = COPY $d3137  %7:_(s64) = COPY $d4138  %8:_(s64) = COPY $d5139  %v2s64_val = G_BUILD_VECTOR %5:_(s64), %6:_(s64)140  %v2s64_val2 = G_BUILD_VECTOR %6:_(s64), %8:_(s64)141  %v4s64_val1:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val:_(<2 x s64>), %v2s64_val2:_(<2 x s64>)142  %v8s64_undef:_(<8 x s64>) = G_IMPLICIT_DEF143  %insert:_(<8 x s64>) = G_INSERT %v8s64_undef:_(<8 x s64>), %v4s64_val1:_(<4 x s64>), 0144  %val1:_(<2 x s64>), %val2:_(<2 x s64>), %val3:_(<2 x s64>), %val4:_(<2 x s64>) = G_UNMERGE_VALUES %insert:_(<8 x s64>)145 146  ; val1 should be <%5, %6>147  G_STORE %val1:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))148  ; val2 should be <%6, %8>149  G_STORE %val2:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))150  RET_ReallyLR151 152...153---154name:            combine_unmerge_from_insert_into_high155alignment:       4156tracksRegLiveness: true157body:             |158  bb.1:159  liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0160    ; CHECK-LABEL: name: combine_unmerge_from_insert_into_high161    ; CHECK: liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0162    ; CHECK-NEXT: {{  $}}163    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0164    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1165    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2166    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d0167    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $d1168    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $d2169    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $d3170    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $d4171    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $d5172    ; CHECK-NEXT: %v2s64_val:_(<2 x s64>) = G_BUILD_VECTOR [[COPY5]](s64), [[COPY6]](s64)173    ; CHECK-NEXT: %v2s64_val2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY8]](s64)174    ; CHECK-NEXT: G_STORE %v2s64_val(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))175    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))176    ; CHECK-NEXT: RET_ReallyLR177  %0:_(s64)  = COPY $x0178  %1:_(s64)  = COPY $x1179  %2:_(p0)  = COPY $x2180  %3:_(s64) = COPY $d0181  %4:_(s64) = COPY $d1182  %5:_(s64) = COPY $d2183  %6:_(s64) = COPY $d3184  %7:_(s64) = COPY $d4185  %8:_(s64) = COPY $d5186  %v2s64_val = G_BUILD_VECTOR %5:_(s64), %6:_(s64)187  %v2s64_val2 = G_BUILD_VECTOR %6:_(s64), %8:_(s64)188  %v4s64_val1:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val:_(<2 x s64>), %v2s64_val2:_(<2 x s64>)189  %v8s64_undef:_(<8 x s64>) = G_IMPLICIT_DEF190  %insert:_(<8 x s64>) = G_INSERT %v8s64_undef:_(<8 x s64>), %v4s64_val1:_(<4 x s64>), 256191  %val1:_(<2 x s64>), %val2:_(<2 x s64>), %val3:_(<2 x s64>), %val4:_(<2 x s64>) = G_UNMERGE_VALUES %insert:_(<8 x s64>)192 193  ; val3 should be <%5, %6>194  G_STORE %val3:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))195  ; val4 should be <%6, %8>196  G_STORE %val4:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))197  RET_ReallyLR198 199...200---201name:            combine_unmerge_from_insert_look_into_container202alignment:       4203tracksRegLiveness: true204body:             |205  bb.1:206  liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0207    ; CHECK-LABEL: name: combine_unmerge_from_insert_look_into_container208    ; CHECK: liveins: $x0, $x1, $x2, $d0, $d1, $d2, $d3, $d4, $d5, $d6, $d7, $x0209    ; CHECK-NEXT: {{  $}}210    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0211    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1212    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2213    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d0214    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $d1215    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $d2216    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $d3217    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $d4218    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $d5219    ; CHECK-NEXT: %v2s64_val:_(<2 x s64>) = G_BUILD_VECTOR [[COPY5]](s64), [[COPY6]](s64)220    ; CHECK-NEXT: %v2s64_val2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY8]](s64)221    ; CHECK-NEXT: G_STORE %v2s64_val(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))222    ; CHECK-NEXT: G_STORE %v2s64_val2(<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>))223    ; CHECK-NEXT: RET_ReallyLR224  %0:_(s64)  = COPY $x0225  %1:_(s64)  = COPY $x1226  %2:_(p0)  = COPY $x2227  %3:_(s64) = COPY $d0228  %4:_(s64) = COPY $d1229  %5:_(s64) = COPY $d2230  %6:_(s64) = COPY $d3231  %7:_(s64) = COPY $d4232  %8:_(s64) = COPY $d5233  %v2s64_val = G_BUILD_VECTOR %5:_(s64), %6:_(s64)234  %v2s64_val2 = G_BUILD_VECTOR %6:_(s64), %8:_(s64)235  %v4s64_undef:_(<4 x s64>) = G_IMPLICIT_DEF236  %v4s64_val1:_(<4 x s64>) = G_CONCAT_VECTORS %v2s64_val:_(<2 x s64>), %v2s64_val2:_(<2 x s64>)237  %v8s64_val1:_(<8 x s64>) = G_CONCAT_VECTORS %v4s64_undef:_(<4 x s64>), %v4s64_val1:_(<4 x s64>)238  %insert:_(<8 x s64>) = G_INSERT %v8s64_val1:_(<8 x s64>), %v4s64_undef:_(<4 x s64>), 0239  ; The values we're interested in are in bits 256-512 of the insert container.240  %val1:_(<2 x s64>), %val2:_(<2 x s64>), %val3:_(<2 x s64>), %val4:_(<2 x s64>) = G_UNMERGE_VALUES %insert:_(<8 x s64>)241 242  ; val3 should be <%5, %6>243  G_STORE %val3:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))244  ; val4 should be <%6, %8>245  G_STORE %val4:_(<2 x s64>), %2:_(p0) :: (store (<2 x s64>))246  RET_ReallyLR247 248...249