102 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s3---4name: narrow_sext_s1285tracksRegLiveness: true6body: |7 bb.1:8 liveins: $x0, $x19 10 ; CHECK-LABEL: name: narrow_sext_s12811 ; CHECK: liveins: $x0, $x112 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x014 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x115 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6316 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[COPY]], [[C]](s64)17 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[ASHR]](s64)18 ; CHECK-NEXT: G_STORE [[MV]](s128), [[COPY1]](p0) :: (store (s128))19 ; CHECK-NEXT: RET_ReallyLR20 %0:_(s64) = COPY $x021 %1:_(p0) = COPY $x122 %2:_(s128) = G_SEXT %0(s64)23 G_STORE %2(s128), %1(p0) :: (store (s128))24 RET_ReallyLR25 26...27---28name: narrow_zext_s12829tracksRegLiveness: true30body: |31 bb.1:32 liveins: $x0, $x133 34 ; CHECK-LABEL: name: narrow_zext_s12835 ; CHECK: liveins: $x0, $x136 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x038 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x139 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 040 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[C]](s64)41 ; CHECK-NEXT: G_STORE [[MV]](s128), [[COPY1]](p0) :: (store (s128))42 ; CHECK-NEXT: RET_ReallyLR43 %0:_(s64) = COPY $x044 %1:_(p0) = COPY $x145 %2:_(s128) = G_ZEXT %0(s64)46 G_STORE %2(s128), %1(p0) :: (store (s128))47 RET_ReallyLR48 49...50---51name: narrow_zext_s128_from_s3252tracksRegLiveness: true53body: |54 bb.1:55 liveins: $w0, $x156 57 ; CHECK-LABEL: name: narrow_zext_s128_from_s3258 ; CHECK: liveins: $w0, $x159 ; CHECK-NEXT: {{ $}}60 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w061 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x162 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 063 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[C]](s32)64 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 065 ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[MV]](s64), [[C1]](s64)66 ; CHECK-NEXT: G_STORE [[MV1]](s128), [[COPY1]](p0) :: (store (s128))67 ; CHECK-NEXT: RET_ReallyLR68 %0:_(s32) = COPY $w069 %1:_(p0) = COPY $x170 %2:_(s128) = G_ZEXT %0(s32)71 G_STORE %2(s128), %1(p0) :: (store (s128))72 RET_ReallyLR73 74...75---76name: narrow_zext_s19277tracksRegLiveness: true78body: |79 bb.1:80 liveins: $x0, $x181 82 ; CHECK-LABEL: name: narrow_zext_s19283 ; CHECK: liveins: $x0, $x184 ; CHECK-NEXT: {{ $}}85 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x086 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x187 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 088 ; CHECK-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))89 ; CHECK-NEXT: G_STORE [[C]](s64), [[COPY1]](p0) :: (store (s64))90 ; CHECK-NEXT: G_STORE [[C]](s64), [[COPY1]](p0) :: (store (s64))91 ; CHECK-NEXT: RET_ReallyLR92 %0:_(s64) = COPY $x093 %1:_(p0) = COPY $x194 %2:_(s192) = G_ZEXT %0(s64)95 %3:_(s64), %4:_(s64), %5:_(s64) = G_UNMERGE_VALUES %2(s192)96 G_STORE %3, %1(p0) :: (store (s64))97 G_STORE %4, %1(p0) :: (store (s64))98 G_STORE %5, %1(p0) :: (store (s64))99 RET_ReallyLR100 101...102