Skip to content

Commit 577b9fc

Browse files
committed
AMDGPU/GlobalISel: Legalize f64 fadd/fmul
llvm-svn: 349014
1 parent fa81940 commit 577b9fc

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,14 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST,
8888
// between these two scenarios.
8989
setAction({G_CONSTANT, S1}, Legal);
9090

91-
setAction({G_FADD, S32}, Legal);
91+
getActionDefinitionsBuilder(
92+
{ G_FADD, G_FMUL })
93+
.legalFor({S32, S64});
9294

9395
setAction({G_FCMP, S1}, Legal);
9496
setAction({G_FCMP, 1, S32}, Legal);
9597
setAction({G_FCMP, 1, S64}, Legal);
9698

97-
setAction({G_FMUL, S32}, Legal);
98-
9999
setAction({G_ZEXT, S64}, Legal);
100100
setAction({G_ZEXT, 1, S32}, Legal);
101101

llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -run-pass=legalizer %s -o - | FileCheck %s
22

33
---
4-
name: test_fadd
4+
name: test_fadd_f32
55
body: |
66
bb.0.entry:
77
liveins: $vgpr0, $vgpr1
@@ -13,3 +13,14 @@ body: |
1313
%2:_(s32) = G_FADD %0, %1
1414
$vgpr0 = COPY %2
1515
...
16+
---
17+
name: test_fadd_f64
18+
body: |
19+
bb.0.entry:
20+
liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
21+
22+
%0:_(s64) = COPY $vgpr0_vgpr1
23+
%1:_(s64) = COPY $vgpr2_vgpr3
24+
%2:_(s64) = G_FADD %0, %1
25+
$vgpr0_vgpr1 = COPY %2
26+
...

llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s
33

44
---
5-
name: test_fmul
5+
name: test_fmul_f32
66
body: |
77
bb.0:
88
liveins: $vgpr0, $vgpr1
@@ -16,3 +16,18 @@ body: |
1616
%2:_(s32) = G_FMUL %0, %1
1717
$vgpr0 = COPY %2
1818
...
19+
---
20+
name: test_fmul_f64
21+
body: |
22+
bb.0:
23+
liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
24+
25+
; CHECK-LABEL: name: test_fmul
26+
; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
27+
; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
28+
; CHECK: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY1]]
29+
%0:_(s64) = COPY $vgpr0_vgpr1
30+
%1:_(s64) = COPY $vgpr2_vgpr3
31+
%2:_(s64) = G_FMUL %0, %1
32+
$vgpr0_vgpr1 = COPY %2
33+
...

0 commit comments

Comments
 (0)