101 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -run-pass=aarch64-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s3 4---5name: merge_unmerge6alignment: 47legalized: true8liveins:9 - { reg: '$w0' }10body: |11 bb.1.entry:12 liveins: $x013 14 ; CHECK-LABEL: name: merge_unmerge15 ; CHECK: liveins: $x016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x018 ; CHECK-NEXT: $x0 = COPY [[COPY]](s64)19 ; CHECK-NEXT: RET_ReallyLR implicit $x020 %0:_(s64) = COPY $x021 %a:_(s32), %b:_(s32) = G_UNMERGE_VALUES %022 %merge:_(s64) = G_MERGE_VALUES %a, %b23 $x0 = COPY %merge(s64)24 RET_ReallyLR implicit $x025 26...27---28name: merge_unmerge_mismatched_order29alignment: 430legalized: true31liveins:32 - { reg: '$w0' }33body: |34 bb.1.entry:35 liveins: $x036 37 ; CHECK-LABEL: name: merge_unmerge_mismatched_order38 ; CHECK: liveins: $x039 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x041 ; CHECK-NEXT: %b:_(s32), %a:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)42 ; CHECK-NEXT: %merge:_(s64) = G_MERGE_VALUES %a(s32), %b(s32)43 ; CHECK-NEXT: $x0 = COPY %merge(s64)44 ; CHECK-NEXT: RET_ReallyLR implicit $x045 %0:_(s64) = COPY $x046 %b:_(s32), %a:_(s32) = G_UNMERGE_VALUES %047 %merge:_(s64) = G_MERGE_VALUES %a, %b48 $x0 = COPY %merge(s64)49 RET_ReallyLR implicit $x050 51...52---53name: merge_unmerge_mismatched_num_defs54alignment: 455legalized: true56liveins:57 - { reg: '$w0' }58body: |59 bb.1.entry:60 liveins: $q061 62 ; CHECK-LABEL: name: merge_unmerge_mismatched_num_defs63 ; CHECK: liveins: $q064 ; CHECK-NEXT: {{ $}}65 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $q066 ; CHECK-NEXT: %a:_(s32), %b:_(s32), %c:_(s32), %d:_(s32) = G_UNMERGE_VALUES [[COPY]](s128)67 ; CHECK-NEXT: %merge:_(s64) = G_MERGE_VALUES %a(s32), %b(s32)68 ; CHECK-NEXT: $x0 = COPY %merge(s64)69 ; CHECK-NEXT: RET_ReallyLR implicit $x070 %0:_(s128) = COPY $q071 %a:_(s32), %b:_(s32), %c:_(s32), %d:_(s32) = G_UNMERGE_VALUES %072 %merge:_(s64) = G_MERGE_VALUES %a, %b73 $x0 = COPY %merge(s64)74 RET_ReallyLR implicit $x075 76...77---78name: merge_to_zext79alignment: 480legalized: true81liveins:82 - { reg: '$w0' }83body: |84 bb.1.entry:85 liveins: $w086 87 ; CHECK-LABEL: name: merge_to_zext88 ; CHECK: liveins: $w089 ; CHECK-NEXT: {{ $}}90 ; CHECK-NEXT: %v:_(s32) = COPY $w091 ; CHECK-NEXT: %merge:_(s64) = G_ZEXT %v(s32)92 ; CHECK-NEXT: $x0 = COPY %merge(s64)93 ; CHECK-NEXT: RET_ReallyLR implicit $x094 %v:_(s32) = COPY $w095 %zero:_(s32) = G_CONSTANT i32 096 %merge:_(s64) = G_MERGE_VALUES %v, %zero97 $x0 = COPY %merge(s64)98 RET_ReallyLR implicit $x099 100...101