mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 22:23:10 +00:00
R600/SI: Fix [s|u]int_to_fp for i1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209971 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -252,6 +252,8 @@ int TWO_PI = 0x40c90fdb;
|
||||
int PI = 0x40490fdb;
|
||||
int TWO_PI_INV = 0x3e22f983;
|
||||
int FP_UINT_MAX_PLUS_1 = 0x4f800000; // 1 << 32 in floating point encoding
|
||||
int FP32_NEG_ONE = 0xbf800000;
|
||||
int FP32_ONE = 0x3f800000;
|
||||
}
|
||||
def CONST : Constants;
|
||||
|
||||
|
||||
@@ -2439,6 +2439,26 @@ def : Pat <
|
||||
(S_MOV_B32 -1), sub1)
|
||||
>;
|
||||
|
||||
def : Pat <
|
||||
(f32 (sint_to_fp i1:$src)),
|
||||
(V_CNDMASK_B32_e64 (i32 0), CONST.FP32_NEG_ONE, $src)
|
||||
>;
|
||||
|
||||
def : Pat <
|
||||
(f32 (uint_to_fp i1:$src)),
|
||||
(V_CNDMASK_B32_e64 (i32 0), CONST.FP32_ONE, $src)
|
||||
>;
|
||||
|
||||
def : Pat <
|
||||
(f64 (sint_to_fp i1:$src)),
|
||||
(V_CVT_F64_I32_e32 (V_CNDMASK_B32_e64 (i32 0), (i32 -1), $src))
|
||||
>;
|
||||
|
||||
def : Pat <
|
||||
(f64 (uint_to_fp i1:$src)),
|
||||
(V_CVT_F64_U32_e32 (V_CNDMASK_B32_e64 (i32 0), (i32 1), $src))
|
||||
>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Miscellaneous Patterns
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
Reference in New Issue
Block a user