brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · e9d4af7 Raw
137 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=CHECK3 4---5name:            test_combine_trunc_xor_i646body:             |7  bb.1:8    ; CHECK-LABEL: name: test_combine_trunc_xor_i649    ; CHECK: %lhs:_(s64) = COPY $x010    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s64)11    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 512    ; CHECK-NEXT: %small:_(s32) = G_XOR [[TRUNC]], [[C]]13    ; CHECK-NEXT: $w0 = COPY %small(s32)14    %lhs:_(s64) = COPY $x015    %rhs:_(s64) = G_CONSTANT i64 516    %res:_(s64) = G_XOR %lhs, %rhs17    %small:_(s32) = G_TRUNC %res(s64)18    $w0 = COPY %small(s32)19...20---21name:            test_combine_trunc_add_i6422body:             |23  bb.1:24    ; CHECK-LABEL: name: test_combine_trunc_add_i6425    ; CHECK: %lhs:_(s64) = COPY $x026    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s64)27    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 528    ; CHECK-NEXT: %small:_(s32) = G_ADD [[TRUNC]], [[C]]29    ; CHECK-NEXT: $w0 = COPY %small(s32)30    %lhs:_(s64) = COPY $x031    %rhs:_(s64) = G_CONSTANT i64 532    %res:_(s64) = G_ADD %lhs, %rhs33    %small:_(s32) = G_TRUNC %res(s64)34    $w0 = COPY %small(s32)35...36---37name:            test_combine_trunc_mul_i6438body:             |39  bb.1:40    ; CHECK-LABEL: name: test_combine_trunc_mul_i6441    ; CHECK: %lhs:_(s64) = COPY $x042    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s64)43    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 544    ; CHECK-NEXT: %small:_(s32) = G_MUL [[TRUNC]], [[C]]45    ; CHECK-NEXT: $w0 = COPY %small(s32)46    %lhs:_(s64) = COPY $x047    %rhs:_(s64) = G_CONSTANT i64 548    %res:_(s64) = G_MUL %lhs, %rhs49    %small:_(s32) = G_TRUNC %res(s64)50    $w0 = COPY %small(s32)51...52---53name:            test_combine_trunc_and_i6454body:             |55  bb.1:56    ; CHECK-LABEL: name: test_combine_trunc_and_i6457    ; CHECK: %lhs:_(s64) = COPY $x058    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s64)59    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 560    ; CHECK-NEXT: %small:_(s32) = G_AND [[TRUNC]], [[C]]61    ; CHECK-NEXT: $w0 = COPY %small(s32)62    %lhs:_(s64) = COPY $x063    %rhs:_(s64) = G_CONSTANT i64 564    %res:_(s64) = G_AND %lhs, %rhs65    %small:_(s32) = G_TRUNC %res(s64)66    $w0 = COPY %small(s32)67...68---69name:            test_combine_trunc_or_i6470body:             |71  bb.1:72    ; CHECK-LABEL: name: test_combine_trunc_or_i6473    ; CHECK: %lhs:_(s64) = COPY $x074    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s64)75    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 576    ; CHECK-NEXT: %small:_(s32) = G_OR [[TRUNC]], [[C]]77    ; CHECK-NEXT: $w0 = COPY %small(s32)78    %lhs:_(s64) = COPY $x079    %rhs:_(s64) = G_CONSTANT i64 580    %res:_(s64) = G_OR %lhs, %rhs81    %small:_(s32) = G_TRUNC %res(s64)82    $w0 = COPY %small(s32)83...84---85name:            test_combine_trunc_sub_i12886body:             |87  bb.1:88    ; CHECK-LABEL: name: test_combine_trunc_sub_i12889    ; CHECK: %lhs:_(s128) = COPY $q090    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %lhs(s128)91    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -592    ; CHECK-NEXT: %small:_(s32) = G_ADD [[TRUNC]], [[C]]93    ; CHECK-NEXT: $w0 = COPY %small(s32)94    %lhs:_(s128) = COPY $q095    %rhs:_(s128) = G_CONSTANT i128 596    %res:_(s128) = G_SUB %lhs, %rhs97    %small:_(s32) = G_TRUNC %res(s128)98    $w0 = COPY %small(s32)99...100---101name:            test_combine_trunc_sub_i128_multi_use102body:             |103  bb.1:104    ; CHECK-LABEL: name: test_combine_trunc_sub_i128_multi_use105    ; CHECK: %lhs:_(s128) = COPY $q0106    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s128) = G_CONSTANT i128 -5107    ; CHECK-NEXT: %res:_(s128) = G_ADD %lhs, [[C]]108    ; CHECK-NEXT: %small:_(s32) = G_TRUNC %res(s128)109    ; CHECK-NEXT: $q0 = COPY %res(s128)110    ; CHECK-NEXT: $w0 = COPY %small(s32)111    %lhs:_(s128) = COPY $q0112    %rhs:_(s128) = G_CONSTANT i128 5113    %res:_(s128) = G_SUB %lhs, %rhs114    %small:_(s32) = G_TRUNC %res(s128)115    $q0 = COPY %res(s128)116    $w0 = COPY %small(s32)117...118---119name:            test_combine_trunc_xor_vector_pattern_did_not_match120body:             |121  bb.1:122    ; CHECK-LABEL: name: test_combine_trunc_xor_vector_pattern_did_not_match123    ; CHECK: %arg1:_(s64) = COPY $x0124    ; CHECK-NEXT: %arg2:_(s64) = COPY $x0125    ; CHECK-NEXT: %lhs:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)126    ; CHECK-NEXT: %rhs:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)127    ; CHECK-NEXT: %res:_(<2 x s64>) = G_XOR %lhs, %rhs128    ; CHECK-NEXT: %small:_(<2 x s16>) = G_TRUNC %res(<2 x s64>)129    ; CHECK-NEXT: $w0 = COPY %small(<2 x s16>)130    %arg1:_(s64) = COPY $x0131    %arg2:_(s64) = COPY $x0132    %lhs:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)133    %rhs:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)134    %res:_(<2 x s64>) = G_XOR %lhs, %rhs135    %small:_(<2 x s16>) = G_TRUNC %res(<2 x s64>)136    $w0 = COPY %small(<2 x s16>)137