brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · 9a2b9dd Raw
207 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs  %s | FileCheck %s --check-prefixes=CHECK,CHECK-PRE3# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-postlegalizer-combiner -verify-machineinstrs  %s | FileCheck %s --check-prefixes=CHECK,CHECK-POST4 5---6name:            test_combine_trunc_undef7legalized: true8body:             |9  bb.1:10    ; CHECK-LABEL: name: test_combine_trunc_undef11    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF12    ; CHECK-NEXT: $w0 = COPY [[DEF]](s32)13    %0:_(s64) = G_IMPLICIT_DEF14    %1:_(s32) = G_TRUNC %0(s64)15    $w0 = COPY %1(s32)16...17---18name:            test_combine_trunc_undef_vec19legalized: true20body:             |21  bb.1:22    ; CHECK-LABEL: name: test_combine_trunc_undef_vec23    ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF24    ; CHECK-NEXT: $x0 = COPY [[DEF]](<2 x s32>)25    %0:_(<2 x s64>) = G_IMPLICIT_DEF26    %1:_(<2 x s32>) = G_TRUNC %0(<2 x s64>)27    $x0 = COPY %1(<2 x s32>)28...29---30name:            test_combine_trunc_anyext_s32_s1631legalized: true32body:             |33  bb.1:34  liveins: $h035    ; CHECK-LABEL: name: test_combine_trunc_anyext_s32_s1636    ; CHECK: liveins: $h037    ; CHECK-NEXT: {{  $}}38    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h039    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s16)40    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)41    %0:_(s16) = COPY $h042    %1:_(s64) = G_ANYEXT %0(s16)43    %2:_(s32) = G_TRUNC %1(s64)44    $w0 = COPY %2(s32)45...46---47name:            test_combine_trunc_anyext_s32_s16_vec48legalized: true49body:             |50  bb.1:51  liveins: $s052    ; CHECK-PRE-LABEL: name: test_combine_trunc_anyext_s32_s16_vec53    ; CHECK-PRE: liveins: $s054    ; CHECK-PRE-NEXT: {{  $}}55    ; CHECK-PRE-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $s056    ; CHECK-PRE-NEXT: [[ANYEXT:%[0-9]+]]:_(<2 x s32>) = G_ANYEXT [[COPY]](<2 x s16>)57    ; CHECK-PRE-NEXT: $x0 = COPY [[ANYEXT]](<2 x s32>)58    ;59    ; CHECK-POST-LABEL: name: test_combine_trunc_anyext_s32_s16_vec60    ; CHECK-POST: liveins: $s061    ; CHECK-POST-NEXT: {{  $}}62    ; CHECK-POST-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $s063    ; CHECK-POST-NEXT: [[ANYEXT:%[0-9]+]]:_(<2 x s64>) = G_ANYEXT [[COPY]](<2 x s16>)64    ; CHECK-POST-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ANYEXT]](<2 x s64>)65    ; CHECK-POST-NEXT: $x0 = COPY [[TRUNC]](<2 x s32>)66    %0:_(<2 x s16>) = COPY $s067    %1:_(<2 x s64>) = G_ANYEXT %0(<2 x s16>)68    %2:_(<2 x s32>) = G_TRUNC %1(<2 x s64>)69    $x0 = COPY %2(<2 x s32>)70...71---72name:            test_combine_trunc_sext_s32_s1673legalized: true74body:             |75  bb.1:76  liveins: $h077    ; CHECK-LABEL: name: test_combine_trunc_sext_s32_s1678    ; CHECK: liveins: $h079    ; CHECK-NEXT: {{  $}}80    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h081    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s16)82    ; CHECK-NEXT: $w0 = COPY [[SEXT]](s32)83    %0:_(s16) = COPY $h084    %1:_(s64) = G_SEXT %0(s16)85    %2:_(s32) = G_TRUNC %1(s64)86    $w0 = COPY %2(s32)87...88---89name:            test_combine_trunc_zext_s32_s1690legalized: true91body:             |92  bb.1:93  liveins: $h094    ; CHECK-LABEL: name: test_combine_trunc_zext_s32_s1695    ; CHECK: liveins: $h096    ; CHECK-NEXT: {{  $}}97    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h098    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s16)99    ; CHECK-NEXT: $w0 = COPY [[ZEXT]](s32)100    %0:_(s16) = COPY $h0101    %1:_(s64) = G_ZEXT %0(s16)102    %2:_(s32) = G_TRUNC %1(s64)103    $w0 = COPY %2(s32)104...105---106name:            test_combine_trunc_anyext_s32_s32107legalized: true108body:             |109  bb.1:110  liveins: $w0111    ; CHECK-LABEL: name: test_combine_trunc_anyext_s32_s32112    ; CHECK: liveins: $w0113    ; CHECK-NEXT: {{  $}}114    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0115    ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)116    %0:_(s32) = COPY $w0117    %1:_(s64) = G_ANYEXT %0(s32)118    %2:_(s32) = G_TRUNC %1(s64)119    $w0 = COPY %2(s32)120...121---122name:            test_combine_trunc_anyext_s32_s64123legalized: true124body:             |125  bb.1:126  liveins: $x0127    ; CHECK-LABEL: name: test_combine_trunc_anyext_s32_s64128    ; CHECK: liveins: $x0129    ; CHECK-NEXT: {{  $}}130    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0131    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)132    ; CHECK-NEXT: $w0 = COPY [[TRUNC]](s32)133    %0:_(s64) = COPY $x0134    %1:_(s128) = G_ANYEXT %0(s64)135    %2:_(s32) = G_TRUNC %1(s128)136    $w0 = COPY %2(s32)137...138---139name:            test_combine_trunc_shl_s32_by_2140legalized: true141body:             |142  bb.1:143  liveins: $w0144    ; CHECK-PRE-LABEL: name: test_combine_trunc_shl_s32_by_2145    ; CHECK-PRE: liveins: $w0146    ; CHECK-PRE-NEXT: {{  $}}147    ; CHECK-PRE-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0148    ; CHECK-PRE-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2149    ; CHECK-PRE-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)150    ; CHECK-PRE-NEXT: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[TRUNC]], [[C]](s32)151    ; CHECK-PRE-NEXT: $h0 = COPY [[SHL]](s16)152    ;153    ; CHECK-POST-LABEL: name: test_combine_trunc_shl_s32_by_2154    ; CHECK-POST: liveins: $w0155    ; CHECK-POST-NEXT: {{  $}}156    ; CHECK-POST-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0157    ; CHECK-POST-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2158    ; CHECK-POST-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)159    ; CHECK-POST-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)160    ; CHECK-POST-NEXT: $h0 = COPY [[TRUNC]](s16)161    %0:_(s32) = COPY $w0162    %1:_(s32) = G_CONSTANT i32 2163    %2:_(s32) = G_SHL %0(s32), %1(s32)164    %3:_(s16) = G_TRUNC %2(s32)165    $h0 = COPY %3(s16)166...167---168name:            test_combine_trunc_shl_s32_by_17169legalized: true170body:             |171  bb.1:172  liveins: $w0173    ; CHECK-LABEL: name: test_combine_trunc_shl_s32_by_17174    ; CHECK: liveins: $w0175    ; CHECK-NEXT: {{  $}}176    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0177    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 17178    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)179    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)180    ; CHECK-NEXT: $h0 = COPY [[TRUNC]](s16)181    %0:_(s32) = COPY $w0182    %1:_(s32) = G_CONSTANT i32 17183    %2:_(s32) = G_SHL %0(s32), %1(s32)184    %3:_(s16) = G_TRUNC %2(s32)185    $h0 = COPY %3(s16)186...187---188name:            test_combine_trunc_multi_use189legalized: true190body:             |191  bb.1:192  liveins: $w0193    ; CHECK-LABEL: name: test_combine_trunc_multi_use194    ; CHECK: liveins: $w0195    ; CHECK-NEXT: {{  $}}196    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0197    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)198    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ZEXT]](s64)199    ; CHECK-NEXT: $h0 = COPY [[TRUNC]](s16)200    ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)201    %0:_(s32) = COPY $w0202    %2:_(s64) = G_ZEXT %0(s32)203    %3:_(s16) = G_TRUNC %2(s64)204    $h0 = COPY %3(s16)205    $x0 = COPY %2(s64)206...207