mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
R600: Use MUL_IEEE for trig/fdiv intrinsic
Reviewed-by: Tom Stellard <thomas.stellard at amd.com> llvm-svn: 176485
This commit is contained in:
parent
484e21aa38
commit
d0d37f790e
@ -1090,12 +1090,12 @@ class COS_Common <bits<11> inst> : R600_1OP <
|
||||
multiclass DIV_Common <InstR600 recip_ieee> {
|
||||
def : Pat<
|
||||
(int_AMDGPU_div R600_Reg32:$src0, R600_Reg32:$src1),
|
||||
(MUL R600_Reg32:$src0, (recip_ieee R600_Reg32:$src1))
|
||||
(MUL_IEEE R600_Reg32:$src0, (recip_ieee R600_Reg32:$src1))
|
||||
>;
|
||||
|
||||
def : Pat<
|
||||
(fdiv R600_Reg32:$src0, R600_Reg32:$src1),
|
||||
(MUL R600_Reg32:$src0, (recip_ieee R600_Reg32:$src1))
|
||||
(MUL_IEEE R600_Reg32:$src0, (recip_ieee R600_Reg32:$src1))
|
||||
>;
|
||||
}
|
||||
|
||||
@ -1169,12 +1169,12 @@ let Predicates = [isR600] in {
|
||||
// cards.
|
||||
class COS_PAT <InstR600 trig> : Pat<
|
||||
(fcos R600_Reg32:$src),
|
||||
(trig (MUL (MOV_IMM_I32 CONST.TWO_PI_INV), R600_Reg32:$src))
|
||||
(trig (MUL_IEEE (MOV_IMM_I32 CONST.TWO_PI_INV), R600_Reg32:$src))
|
||||
>;
|
||||
|
||||
class SIN_PAT <InstR600 trig> : Pat<
|
||||
(fsin R600_Reg32:$src),
|
||||
(trig (MUL (MOV_IMM_I32 CONST.TWO_PI_INV), R600_Reg32:$src))
|
||||
(trig (MUL_IEEE (MOV_IMM_I32 CONST.TWO_PI_INV), R600_Reg32:$src))
|
||||
>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1,13 +1,13 @@
|
||||
;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s
|
||||
|
||||
;CHECK: RECIP_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL NON-IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: RECIP_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL NON-IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: RECIP_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL NON-IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: RECIP_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL NON-IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
;CHECK: MUL_IEEE T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||
|
||||
define void @test(<4 x float> addrspace(1)* %out, <4 x float> addrspace(1)* %in) {
|
||||
%b_ptr = getelementptr <4 x float> addrspace(1)* %in, i32 1
|
||||
|
Loading…
Reference in New Issue
Block a user