summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-12-13 08:27:48 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-12-13 08:27:48 +0000
commit577b9fc54370b51262b11f5fee7474e9c71f4507 (patch)
treef43ef093c8df68c4d7e11497aeb44ff4f9fa68b9 /llvm
parentfa81940fc71ab334e8ea09a64338a7f11d814867 (diff)
downloadbcm5719-llvm-577b9fc54370b51262b11f5fee7474e9c71f4507.tar.gz
bcm5719-llvm-577b9fc54370b51262b11f5fee7474e9c71f4507.zip
AMDGPU/GlobalISel: Legalize f64 fadd/fmul
llvm-svn: 349014
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp6
-rw-r--r--llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir13
-rw-r--r--llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir17
3 files changed, 31 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index 65513d7993c..83e8504bfd7 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -88,14 +88,14 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST,
// between these two scenarios.
setAction({G_CONSTANT, S1}, Legal);
- setAction({G_FADD, S32}, Legal);
+ getActionDefinitionsBuilder(
+ { G_FADD, G_FMUL })
+ .legalFor({S32, S64});
setAction({G_FCMP, S1}, Legal);
setAction({G_FCMP, 1, S32}, Legal);
setAction({G_FCMP, 1, S64}, Legal);
- setAction({G_FMUL, S32}, Legal);
-
setAction({G_ZEXT, S64}, Legal);
setAction({G_ZEXT, 1, S32}, Legal);
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
index 6597eea3f7e..85ed234bf47 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
@@ -1,7 +1,7 @@
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -run-pass=legalizer %s -o - | FileCheck %s
---
-name: test_fadd
+name: test_fadd_f32
body: |
bb.0.entry:
liveins: $vgpr0, $vgpr1
@@ -13,3 +13,14 @@ body: |
%2:_(s32) = G_FADD %0, %1
$vgpr0 = COPY %2
...
+---
+name: test_fadd_f64
+body: |
+ bb.0.entry:
+ liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
+
+ %0:_(s64) = COPY $vgpr0_vgpr1
+ %1:_(s64) = COPY $vgpr2_vgpr3
+ %2:_(s64) = G_FADD %0, %1
+ $vgpr0_vgpr1 = COPY %2
+...
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
index 361e9af2a86..8a0ce1c6e91 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
@@ -2,7 +2,7 @@
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s
---
-name: test_fmul
+name: test_fmul_f32
body: |
bb.0:
liveins: $vgpr0, $vgpr1
@@ -16,3 +16,18 @@ body: |
%2:_(s32) = G_FMUL %0, %1
$vgpr0 = COPY %2
...
+---
+name: test_fmul_f64
+body: |
+ bb.0:
+ liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
+
+ ; CHECK-LABEL: name: test_fmul
+ ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
+ ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
+ ; CHECK: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY1]]
+ %0:_(s64) = COPY $vgpr0_vgpr1
+ %1:_(s64) = COPY $vgpr2_vgpr3
+ %2:_(s64) = G_FMUL %0, %1
+ $vgpr0_vgpr1 = COPY %2
+...
OpenPOWER on IntegriCloud