brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 9483cbf Raw
137 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -debugify-and-strip-all-safe -run-pass=aarch64-prelegalizer-combiner --aarch64prelegalizercombiner-only-enable-rule="match_addos" -global-isel -verify-machineinstrs %s -o - | FileCheck %s3# REQUIRES: asserts4 5# (G_*ADDO x, 0) -> x + no carry6 7...8---9name:            uadd_zero10tracksRegLiveness: true11body:             |12  bb.0:13    liveins: $w0, $w114    ; CHECK-LABEL: name: uadd_zero15    ; CHECK: liveins: $w0, $w116    ; CHECK-NEXT: {{  $}}17    ; CHECK-NEXT: %lhs:_(s32) = COPY $w018    ; CHECK-NEXT: %add:_(s32) = COPY %lhs(s32)19    ; CHECK-NEXT: %o:_(s1) = G_CONSTANT i1 false20    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)21    ; CHECK-NEXT: $w0 = COPY %add(s32)22    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)23    ; CHECK-NEXT: RET_ReallyLR implicit $w024    %lhs:_(s32) = COPY $w025    %zero:_(s32) = G_CONSTANT i32 026    %add:_(s32), %o:_(s1) = G_UADDO %lhs, %zero27    %o_wide:_(s32) = G_ZEXT %o(s1)28    $w0 = COPY %add(s32)29    $w1 = COPY %o_wide30    RET_ReallyLR implicit $w031...32---33name:            sadd_zero34tracksRegLiveness: true35body:             |36  bb.0:37    liveins: $w0, $w138    ; CHECK-LABEL: name: sadd_zero39    ; CHECK: liveins: $w0, $w140    ; CHECK-NEXT: {{  $}}41    ; CHECK-NEXT: %lhs:_(s32) = COPY $w042    ; CHECK-NEXT: %add:_(s32) = COPY %lhs(s32)43    ; CHECK-NEXT: %o:_(s1) = G_CONSTANT i1 false44    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)45    ; CHECK-NEXT: $w0 = COPY %add(s32)46    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)47    ; CHECK-NEXT: RET_ReallyLR implicit $w048    %lhs:_(s32) = COPY $w049    %zero:_(s32) = G_CONSTANT i32 050    %add:_(s32), %o:_(s1) = G_SADDO %lhs, %zero51    %o_wide:_(s32) = G_ZEXT %o(s1)52    $w0 = COPY %add(s32)53    $w1 = COPY %o_wide54    RET_ReallyLR implicit $w055...56---57name:            wrong_cst58tracksRegLiveness: true59body:             |60  bb.0:61    liveins: $w0, $w162    ; CHECK-LABEL: name: wrong_cst63    ; CHECK: liveins: $w0, $w164    ; CHECK-NEXT: {{  $}}65    ; CHECK-NEXT: %lhs:_(s32) = COPY $w066    ; CHECK-NEXT: %not_zero:_(s32) = G_CONSTANT i32 367    ; CHECK-NEXT: %add:_(s32), %o:_(s1) = G_UADDO %lhs, %not_zero68    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)69    ; CHECK-NEXT: $w0 = COPY %add(s32)70    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)71    ; CHECK-NEXT: RET_ReallyLR implicit $w072    %lhs:_(s32) = COPY $w073    %not_zero:_(s32) = G_CONSTANT i32 374    %add:_(s32), %o:_(s1) = G_UADDO %lhs, %not_zero75    %o_wide:_(s32) = G_ZEXT %o(s1)76    $w0 = COPY %add(s32)77    $w1 = COPY %o_wide78    RET_ReallyLR implicit $w079...80---81name:            uadd_vec_zero82tracksRegLiveness: true83body:             |84  bb.0:85    liveins: $q0, $x086    ; CHECK-LABEL: name: uadd_vec_zero87    ; CHECK: liveins: $q0, $x088    ; CHECK-NEXT: {{  $}}89    ; CHECK-NEXT: %lhs:_(<2 x s64>) = COPY $q090    ; CHECK-NEXT: %zero:_(s64) = G_CONSTANT i64 091    ; CHECK-NEXT: %add:_(<2 x s64>) = COPY %lhs(<2 x s64>)92    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false93    ; CHECK-NEXT: %o:_(<2 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1)94    ; CHECK-NEXT: %o_elt_0:_(s1) = G_EXTRACT_VECTOR_ELT %o(<2 x s1>), %zero(s64)95    ; CHECK-NEXT: %o_wide:_(s64) = G_ZEXT %o_elt_0(s1)96    ; CHECK-NEXT: $q0 = COPY %add(<2 x s64>)97    ; CHECK-NEXT: $x0 = COPY %o_wide(s64)98    ; CHECK-NEXT: RET_ReallyLR implicit $q099    %lhs:_(<2 x s64>) = COPY $q0100    %zero:_(s64) = G_CONSTANT i64 0101    %zero_vec:_(<2 x s64>) = G_BUILD_VECTOR %zero, %zero102    %add:_(<2 x s64>), %o:_(<2 x s1>) = G_UADDO %lhs, %zero_vec103    %o_elt_0:_(s1) = G_EXTRACT_VECTOR_ELT %o:_(<2 x s1>), %zero:_(s64)104    %o_wide:_(s64) = G_ZEXT %o_elt_0105    $q0 = COPY %add(<2 x s64>)106    $x0 = COPY %o_wide107    RET_ReallyLR implicit $q0108...109---110name:            sadd_vec_zero111tracksRegLiveness: true112body:             |113  bb.0:114    liveins: $q0, $x0115    ; CHECK-LABEL: name: sadd_vec_zero116    ; CHECK: liveins: $q0, $x0117    ; CHECK-NEXT: {{  $}}118    ; CHECK-NEXT: %lhs:_(<2 x s64>) = COPY $q0119    ; CHECK-NEXT: %zero:_(s64) = G_CONSTANT i64 0120    ; CHECK-NEXT: %add:_(<2 x s64>) = COPY %lhs(<2 x s64>)121    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false122    ; CHECK-NEXT: %o:_(<2 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1)123    ; CHECK-NEXT: %o_elt_0:_(s1) = G_EXTRACT_VECTOR_ELT %o(<2 x s1>), %zero(s64)124    ; CHECK-NEXT: %o_wide:_(s64) = G_ZEXT %o_elt_0(s1)125    ; CHECK-NEXT: $q0 = COPY %add(<2 x s64>)126    ; CHECK-NEXT: $x0 = COPY %o_wide(s64)127    ; CHECK-NEXT: RET_ReallyLR implicit $q0128    %lhs:_(<2 x s64>) = COPY $q0129    %zero:_(s64) = G_CONSTANT i64 0130    %zero_vec:_(<2 x s64>) = G_BUILD_VECTOR %zero, %zero131    %add:_(<2 x s64>), %o:_(<2 x s1>) = G_SADDO %lhs, %zero_vec132    %o_elt_0:_(s1) = G_EXTRACT_VECTOR_ELT %o:_(<2 x s1>), %zero:_(s64)133    %o_wide:_(s64) = G_ZEXT %o_elt_0134    $q0 = COPY %add(<2 x s64>)135    $x0 = COPY %o_wide136    RET_ReallyLR implicit $q0137