brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 2612015 Raw
118 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="mulo_by_2" -global-isel -verify-machineinstrs %s -o - | FileCheck %s3# REQUIRES: asserts4...5---6name:            smulo_to_saddo7tracksRegLiveness: true8body:             |9  bb.0:10    liveins: $x011 12    ; CHECK-LABEL: name: smulo_to_saddo13    ; CHECK: liveins: $x014    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: %copy:_(s64) = COPY $x016    ; CHECK-NEXT: %mul:_(s64), %o:_(s1) = G_SADDO %copy, %copy17    ; CHECK-NEXT: %overflow_ext:_(s32) = G_ZEXT %o(s1)18    ; CHECK-NEXT: $w0 = COPY %overflow_ext(s32)19    ; CHECK-NEXT: RET_ReallyLR implicit $w020    %copy:_(s64) = COPY $x021    %two:_(s64) = G_CONSTANT i64 222    %mul:_(s64), %o:_(s1) = G_SMULO %copy, %two23    %overflow_ext:_(s32) = G_ZEXT %o(s1)24    $w0 = COPY %overflow_ext(s32)25    RET_ReallyLR implicit $w026...27---28name:            umulo_to_uaddo29tracksRegLiveness: true30body:             |31  bb.0:32    liveins: $x033 34    ; CHECK-LABEL: name: umulo_to_uaddo35    ; CHECK: liveins: $x036    ; CHECK-NEXT: {{  $}}37    ; CHECK-NEXT: %copy:_(s64) = COPY $x038    ; CHECK-NEXT: %mul:_(s64), %o:_(s1) = G_UADDO %copy, %copy39    ; CHECK-NEXT: %overflow_ext:_(s32) = G_ZEXT %o(s1)40    ; CHECK-NEXT: $w0 = COPY %overflow_ext(s32)41    ; CHECK-NEXT: RET_ReallyLR implicit $w042    %copy:_(s64) = COPY $x043    %two:_(s64) = G_CONSTANT i64 244    %mul:_(s64), %o:_(s1) = G_UMULO %copy, %two45    %overflow_ext:_(s32) = G_ZEXT %o(s1)46    $w0 = COPY %overflow_ext(s32)47    RET_ReallyLR implicit $w048...49---50name:            vector51tracksRegLiveness: true52body:             |53  bb.0:54    liveins: $d0, $d155 56    ; CHECK-LABEL: name: vector57    ; CHECK: liveins: $d0, $d158    ; CHECK-NEXT: {{  $}}59    ; CHECK-NEXT: %copy:_(<2 x s32>) = COPY $d060    ; CHECK-NEXT: %mul:_(<2 x s32>), %o:_(<2 x s1>) = G_SADDO %copy, %copy61    ; CHECK-NEXT: %overflow_ext:_(<2 x s32>) = G_ANYEXT %o(<2 x s1>)62    ; CHECK-NEXT: $d0 = COPY %overflow_ext(<2 x s32>)63    ; CHECK-NEXT: RET_ReallyLR implicit $d064    %copy:_(<2 x s32>) = COPY $d065    %two:_(s32) = G_CONSTANT i32 266    %splat_two:_(<2 x s32>) = G_BUILD_VECTOR %two(s32), %two(s32)67    %mul:_(<2 x s32>), %o:_(<2 x s1>) = G_SMULO %copy, %splat_two68    %overflow_ext:_(<2 x s32>) = G_ANYEXT %o(<2 x s1>)69    $d0 = COPY %overflow_ext(<2 x s32>)70    RET_ReallyLR implicit $d071...72---73name:            dont_combine_wrong_cst74tracksRegLiveness: true75body:             |76  bb.0:77    liveins: $x078 79    ; CHECK-LABEL: name: dont_combine_wrong_cst80    ; CHECK: liveins: $x081    ; CHECK-NEXT: {{  $}}82    ; CHECK-NEXT: %copy:_(s64) = COPY $x083    ; CHECK-NEXT: %three:_(s64) = G_CONSTANT i64 384    ; CHECK-NEXT: %mul:_(s64), %o:_(s1) = G_UMULO %copy, %three85    ; CHECK-NEXT: %overflow_ext:_(s32) = G_ZEXT %o(s1)86    ; CHECK-NEXT: $w0 = COPY %overflow_ext(s32)87    ; CHECK-NEXT: RET_ReallyLR implicit $w088    %copy:_(s64) = COPY $x089    %three:_(s64) = G_CONSTANT i64 390    %mul:_(s64), %o:_(s1) = G_UMULO %copy, %three91    %overflow_ext:_(s32) = G_ZEXT %o(s1)92    $w0 = COPY %overflow_ext(s32)93    RET_ReallyLR implicit $w094...95---96name:            dont_combine_not_cst97tracksRegLiveness: true98body:             |99  bb.0:100    liveins: $x0, $x1101 102    ; CHECK-LABEL: name: dont_combine_not_cst103    ; CHECK: liveins: $x0, $x1104    ; CHECK-NEXT: {{  $}}105    ; CHECK-NEXT: %copy1:_(s64) = COPY $x0106    ; CHECK-NEXT: %copy2:_(s64) = COPY $x1107    ; CHECK-NEXT: %mul:_(s64), %o:_(s1) = G_UMULO %copy1, %copy2108    ; CHECK-NEXT: %overflow_ext:_(s32) = G_ZEXT %o(s1)109    ; CHECK-NEXT: $w0 = COPY %overflow_ext(s32)110    ; CHECK-NEXT: RET_ReallyLR implicit $w0111    %copy1:_(s64) = COPY $x0112    %copy2:_(s64) = COPY $x1113    %mul:_(s64), %o:_(s1) = G_UMULO %copy1, %copy2114    %overflow_ext:_(s32) = G_ZEXT %o(s1)115    $w0 = COPY %overflow_ext(s32)116    RET_ReallyLR implicit $w0117...118