[globalisel][tablegen] Enable the import of rules involving fma.
Summary: G_FMA was recently added to GlobalISel which enables the import of rules involving fma. Add the mapping to allow it. Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar Reviewed By: rovka Subscribers: kristof.beyls, javed.absar, igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D35130 llvm-svn: 308308
This commit is contained in:
parent
f40f8fc415
commit
40b66d646e
|
@ -58,6 +58,7 @@ def : GINodeEquiv<G_SITOFP, sint_to_fp>;
|
|||
def : GINodeEquiv<G_UITOFP, uint_to_fp>;
|
||||
def : GINodeEquiv<G_FADD, fadd>;
|
||||
def : GINodeEquiv<G_FSUB, fsub>;
|
||||
def : GINodeEquiv<G_FMA, fma>;
|
||||
def : GINodeEquiv<G_FMUL, fmul>;
|
||||
def : GINodeEquiv<G_FDIV, fdiv>;
|
||||
def : GINodeEquiv<G_FREM, frem>;
|
||||
|
|
|
@ -82,7 +82,7 @@ AArch64LegalizerInfo::AArch64LegalizerInfo() {
|
|||
setAction({Op, 1, s1}, Legal);
|
||||
}
|
||||
|
||||
for (unsigned BinOp : {G_FADD, G_FSUB, G_FMUL, G_FDIV})
|
||||
for (unsigned BinOp : {G_FADD, G_FSUB, G_FMA, G_FMUL, G_FDIV})
|
||||
for (auto Ty : {s32, s64})
|
||||
setAction({BinOp, Ty}, Legal);
|
||||
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
# RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
|
||||
|
||||
--- |
|
||||
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
||||
|
||||
define void @FMADDSrrr_fpr() { ret void }
|
||||
...
|
||||
|
||||
---
|
||||
# CHECK-LABEL: name: FMADDSrrr_fpr
|
||||
name: FMADDSrrr_fpr
|
||||
legalized: true
|
||||
regBankSelected: true
|
||||
|
||||
# CHECK: registers:
|
||||
# CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
|
||||
# CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
|
||||
# CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
|
||||
# CHECK-NEXT: - { id: 3, class: fpr32, preferred-register: '' }
|
||||
registers:
|
||||
- { id: 0, class: fpr }
|
||||
- { id: 1, class: fpr }
|
||||
- { id: 2, class: fpr }
|
||||
- { id: 3, class: fpr }
|
||||
|
||||
# CHECK: body:
|
||||
# CHECK: %0 = COPY %w0
|
||||
# CHECK: %1 = COPY %w1
|
||||
# CHECK: %2 = COPY %w2
|
||||
# CHECK: %3 = FMADDSrrr %0, %1, %2
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: %w0, %w1, %w2
|
||||
|
||||
%0(s32) = COPY %w0
|
||||
%1(s32) = COPY %w1
|
||||
%2(s32) = COPY %w2
|
||||
%3(s32) = G_FMA %0, %1, %2
|
||||
%x0 = COPY %3
|
||||
...
|
||||
|
Loading…
Reference in New Issue