86 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=neoverse-n2 -run-pass machine-combiner \3# RUN: -verify-machineinstrs -o - %s | FileCheck %s4 5# Most machine-combiner reassociation tests are put in machine-combiner.ll.6# However, we cannot test reassociation of SVE EORs in machine-combiner.ll7# because isel combines two EORs to one EOR3. So SVE EOR-specific test is put8# in this file.9 10---11 12name: reassociate_xors_sve_113registers:14 - { id: 0, class: zpr, preferred-register: '' }15 - { id: 1, class: zpr, preferred-register: '' }16 - { id: 2, class: zpr, preferred-register: '' }17 - { id: 3, class: zpr, preferred-register: '' }18 - { id: 4, class: zpr, preferred-register: '' }19 - { id: 5, class: zpr, preferred-register: '' }20 - { id: 6, class: zpr, preferred-register: '' }21body: |22 bb.0:23 liveins: $z0, $z1, $z2, $z324 25 ; CHECK-LABEL: name: reassociate_xors_sve_126 ; CHECK: liveins: $z0, $z1, $z2, $z327 ; CHECK-NEXT: {{ $}}28 ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z329 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z230 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:zpr = COPY $z131 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:zpr = COPY $z032 ; CHECK-NEXT: [[EOR_ZZZ:%[0-9]+]]:zpr = EOR_ZZZ [[COPY3]], [[COPY2]]33 ; CHECK-NEXT: [[EOR_ZZZ1:%[0-9]+]]:zpr = EOR_ZZZ [[COPY1]], [[COPY]]34 ; CHECK-NEXT: [[EOR_ZZZ2:%[0-9]+]]:zpr = EOR_ZZZ killed [[EOR_ZZZ]], killed [[EOR_ZZZ1]]35 ; CHECK-NEXT: $z0 = COPY [[EOR_ZZZ2]]36 ; CHECK-NEXT: RET_ReallyLR implicit $z037 %3:zpr = COPY $z338 %2:zpr = COPY $z239 %1:zpr = COPY $z140 %0:zpr = COPY $z041 %4:zpr = EOR_ZZZ %0, %142 %5:zpr = EOR_ZZZ killed %4, %243 %6:zpr = EOR_ZZZ killed %5, %344 $z0 = COPY %645 RET_ReallyLR implicit $z046 47...48---49 50name: reassociate_xors_sve_251registers:52 - { id: 0, class: zpr, preferred-register: '' }53 - { id: 1, class: zpr, preferred-register: '' }54 - { id: 2, class: zpr, preferred-register: '' }55 - { id: 3, class: zpr, preferred-register: '' }56 - { id: 4, class: zpr, preferred-register: '' }57 - { id: 5, class: zpr, preferred-register: '' }58 - { id: 6, class: zpr, preferred-register: '' }59body: |60 bb.0:61 liveins: $z0, $z1, $z2, $z362 63 ; CHECK-LABEL: name: reassociate_xors_sve_264 ; CHECK: liveins: $z0, $z1, $z2, $z365 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z367 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z268 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:zpr = COPY $z169 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:zpr = COPY $z070 ; CHECK-NEXT: [[AND_ZZZ:%[0-9]+]]:zpr = AND_ZZZ [[COPY3]], [[COPY2]]71 ; CHECK-NEXT: [[EOR_ZZZ:%[0-9]+]]:zpr = EOR_ZZZ [[COPY1]], [[COPY]]72 ; CHECK-NEXT: [[EOR_ZZZ1:%[0-9]+]]:zpr = EOR_ZZZ killed [[AND_ZZZ]], killed [[EOR_ZZZ]]73 ; CHECK-NEXT: $z0 = COPY [[EOR_ZZZ1]]74 ; CHECK-NEXT: RET_ReallyLR implicit $z075 %3:zpr = COPY $z376 %2:zpr = COPY $z277 %1:zpr = COPY $z178 %0:zpr = COPY $z079 %4:zpr = AND_ZZZ %0, %180 %5:zpr = EOR_ZZZ killed %4, %281 %6:zpr = EOR_ZZZ killed %5, %382 $z0 = COPY %683 RET_ReallyLR implicit $z084 85...86