1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=aarch64 -O0 -run-pass=legalizer -global-isel-abort=2 %s -o - | FileCheck %s 3 4--- 5name: test_merge_s4 6body: | 7 bb.0: 8 ; CHECK-LABEL: name: test_merge_s4 9 ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0 10 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4 11 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s64) 12 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[C]](s32) 13 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[COPY]], [[SHL]] 14 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[OR]](s32) 15 ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64) 16 %0:_(s64) = G_CONSTANT i64 0 17 %1:_(s4) = G_TRUNC %0 18 19 %2:_(s8) = G_MERGE_VALUES %1, %1 20 %3:_(s8) = COPY %2 21 %4:_(s64) = G_ANYEXT %3 22 $x0 = COPY %4 23... 24--- 25name: test_merge_s16_s8 26body: | 27 bb.0: 28 29 ; CHECK-LABEL: name: test_merge_s16_s8 30 ; CHECK: %a:_(s32) = COPY $w0 31 ; CHECK-NEXT: %b:_(s32) = COPY $w1 32 ; CHECK-NEXT: %a_t:_(s8) = G_TRUNC %a(s32) 33 ; CHECK-NEXT: %b_t:_(s8) = G_TRUNC %b(s32) 34 ; CHECK-NEXT: %m:_(s16) = G_MERGE_VALUES %a_t(s8), %b_t(s8) 35 ; CHECK-NEXT: %ext:_(s64) = G_ANYEXT %m(s16) 36 ; CHECK-NEXT: $x0 = COPY %ext(s64) 37 %a:_(s32) = COPY $w0 38 %b:_(s32) = COPY $w1 39 %a_t:_(s8) = G_TRUNC %a 40 %b_t:_(s8) = G_TRUNC %b 41 42 %m:_(s16) = G_MERGE_VALUES %a_t, %b_t 43 %ext:_(s64) = G_ANYEXT %m 44 $x0 = COPY %ext 45... 46