brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · 491d693 Raw
163 lines · plain
1# RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=cortex-a57 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=UNPROFITABLE,ALL %s2# RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=falkor %s -machine-combiner-verify-pattern-order=true | FileCheck --check-prefixes=PROFITABLE,ALL %s3# RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=exynos-m3 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s4# RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx2t99 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s5# RUN: llc -run-pass=machine-combiner -o - -mtriple=aarch64-unknown-linux -mcpu=thunderx3t110 -machine-combiner-verify-pattern-order=true %s | FileCheck --check-prefixes=PROFITABLE,ALL %s6#7name:            f1_2s8registers:9  - { id: 0, class: fpr64 }10  - { id: 1, class: fpr64 }11  - { id: 2, class: fpr64 }12  - { id: 3, class: fpr64 }13  - { id: 4, class: fpr64 }14body:             |15  bb.0.entry:16    %2:fpr64 = COPY $d217    %1:fpr64 = COPY $d118    %0:fpr64 = COPY $d019    %3:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr20    %4:fpr64 = contract FSUBv2f32 killed %3, %2, implicit $fpcr21    $d0 = COPY %422    RET_ReallyLR implicit $d023 24...25# UNPROFITABLE-LABEL: name: f1_2s26# UNPROFITABLE: [[R1:%[0-9]+]]:fpr64 = contract FNEGv2f32 %227# UNPROFITABLE-NEXT: FMLAv2f32 killed [[R1]], %0, %1, implicit $fpcr28#29# PROFITABLE-LABEL: name: f1_2s30# PROFITABLE: [[R1:%[0-9]+]]:fpr64 = contract FNEGv2f32 %231# PROFITABLE-NEXT: FMLAv2f32 killed [[R1]], %0, %1, implicit $fpcr32---33name:            f1_4s34registers:35  - { id: 0, class: fpr128 }36  - { id: 1, class: fpr128 }37  - { id: 2, class: fpr128 }38  - { id: 3, class: fpr128 }39  - { id: 4, class: fpr128 }40body:             |41  bb.0.entry:42    %2:fpr128 = COPY $q243    %1:fpr128 = COPY $q144    %0:fpr128 = COPY $q045    %3:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr46    %4:fpr128 = contract FSUBv4f32 killed %3, %2, implicit $fpcr47    $q0 = COPY %448    RET_ReallyLR implicit $q049 50...51# UNPROFITABLE-LABEL: name: f1_4s52# UNPROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr53# UNPROFITABLE-NEXT: FSUBv4f32 killed [[R1]], %2, implicit $fpcr54#55# PROFITABLE-LABEL: name: f1_4s56# PROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FNEGv4f32 %257# PROFITABLE-NEXT: FMLAv4f32 killed [[R1]], %0, %1, implicit $fpcr58---59name:            f1_2d60registers:61  - { id: 0, class: fpr128 }62  - { id: 1, class: fpr128 }63  - { id: 2, class: fpr128 }64  - { id: 3, class: fpr128 }65  - { id: 4, class: fpr128 }66body:             |67  bb.0.entry:68    %2:fpr128 = COPY $q269    %1:fpr128 = COPY $q170    %0:fpr128 = COPY $q071    %3:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr72    %4:fpr128 = contract FSUBv2f64 killed %3, %2, implicit $fpcr73    $q0 = COPY %474    RET_ReallyLR implicit $q075 76...77# UNPROFITABLE-LABEL: name: f1_2d78# UNPROFITABLE: %3:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr79# UNPROFITABLE-NEXT: FSUBv2f64 killed %3, %2, implicit $fpcr80#81# PROFITABLE-LABEL: name: f1_2d82# PROFITABLE: [[R1:%[0-9]+]]:fpr128 = contract FNEGv2f64 %283# PROFITABLE-NEXT: FMLAv2f64 killed [[R1]], %0, %1, implicit $fpcr84---85name:            f1_both_fmul_2s86registers:87  - { id: 0, class: fpr64 }88  - { id: 1, class: fpr64 }89  - { id: 2, class: fpr64 }90  - { id: 3, class: fpr64 }91  - { id: 4, class: fpr64 }92  - { id: 5, class: fpr64 }93  - { id: 6, class: fpr64 }94body:             |95  bb.0.entry:96    %3:fpr64 = COPY $q397    %2:fpr64 = COPY $q298    %1:fpr64 = COPY $q199    %0:fpr64 = COPY $q0100    %4:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr101    %5:fpr64 = contract FMULv2f32 %2, %3, implicit $fpcr102    %6:fpr64 = contract FSUBv2f32 killed %4, %5, implicit $fpcr103    $q0 = COPY %6104    RET_ReallyLR implicit $q0105 106...107# ALL-LABEL: name: f1_both_fmul_2s108# ALL: %4:fpr64 = contract FMULv2f32 %0, %1, implicit $fpcr109# ALL-NEXT: FMLSv2f32 killed %4, %2, %3, implicit $fpcr110---111name:            f1_both_fmul_4s112registers:113  - { id: 0, class: fpr128 }114  - { id: 1, class: fpr128 }115  - { id: 2, class: fpr128 }116  - { id: 3, class: fpr128 }117  - { id: 4, class: fpr128 }118  - { id: 5, class: fpr128 }119  - { id: 6, class: fpr128 }120body:             |121  bb.0.entry:122    %3:fpr128 = COPY $q3123    %2:fpr128 = COPY $q2124    %1:fpr128 = COPY $q1125    %0:fpr128 = COPY $q0126    %4:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr127    %5:fpr128 = contract FMULv4f32 %2, %3, implicit $fpcr128    %6:fpr128 = contract FSUBv4f32 killed %4, %5, implicit $fpcr129    $q0 = COPY %6130    RET_ReallyLR implicit $q0131 132...133# ALL-LABEL: name: f1_both_fmul_4s134# ALL: %4:fpr128 = contract FMULv4f32 %0, %1, implicit $fpcr135# ALL-NEXT: FMLSv4f32 killed %4, %2, %3, implicit $fpcr136---137name:            f1_both_fmul_2d138registers:139  - { id: 0, class: fpr128 }140  - { id: 1, class: fpr128 }141  - { id: 2, class: fpr128 }142  - { id: 3, class: fpr128 }143  - { id: 4, class: fpr128 }144  - { id: 5, class: fpr128 }145  - { id: 6, class: fpr128 }146body:             |147  bb.0.entry:148    %3:fpr128 = COPY $q3149    %2:fpr128 = COPY $q2150    %1:fpr128 = COPY $q1151    %0:fpr128 = COPY $q0152    %4:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr153    %5:fpr128 = contract FMULv2f64 %2, %3, implicit $fpcr154    %6:fpr128 = contract FSUBv2f64 killed %4, %5, implicit $fpcr155    $q0 = COPY %6156    RET_ReallyLR implicit $q0157 158...159# ALL-LABEL: name: f1_both_fmul_2d160# ALL: %4:fpr128 = contract FMULv2f64 %0, %1, implicit $fpcr161# ALL-NEXT: FMLSv2f64 killed %4, %2, %3, implicit $fpcr162 163