diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2014-04-01 19:24:27 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2014-04-01 19:24:27 +0000 |
| commit | 9e0baa6d3ad5db4205bb779bdb67662b24b5126f (patch) | |
| tree | df411f766eb0cb1f66615e651ecbf6e8f039c654 /llvm/lib/Target | |
| parent | 911517848ddd763de8c05da87849eb0315f826e3 (diff) | |
| download | bcm5719-llvm-9e0baa6d3ad5db4205bb779bdb67662b24b5126f.tar.gz bcm5719-llvm-9e0baa6d3ad5db4205bb779bdb67662b24b5126f.zip | |
[PowerPC] Add some missing VSX bitcast patterns
llvm-svn: 205352
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrVSX.td | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrVSX.td b/llvm/lib/Target/PowerPC/PPCInstrVSX.td index baf07cbe7bb..9cc919ebe38 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrVSX.td +++ b/llvm/lib/Target/PowerPC/PPCInstrVSX.td @@ -758,6 +758,8 @@ def : Pat<(fma (fneg v4f32:$A), v4f32:$C, v4f32:$B), def : Pat<(fma v4f32:$A, (fneg v4f32:$C), v4f32:$B), (XVNMSUBASP $B, $C, $A)>; +def : Pat<(v2f64 (bitconvert v4f32:$A)), + (COPY_TO_REGCLASS $A, VSRC)>; def : Pat<(v2f64 (bitconvert v4i32:$A)), (COPY_TO_REGCLASS $A, VSRC)>; def : Pat<(v2f64 (bitconvert v8i16:$A)), @@ -765,6 +767,8 @@ def : Pat<(v2f64 (bitconvert v8i16:$A)), def : Pat<(v2f64 (bitconvert v16i8:$A)), (COPY_TO_REGCLASS $A, VSRC)>; +def : Pat<(v4f32 (bitconvert v2f64:$A)), + (COPY_TO_REGCLASS $A, VRRC)>; def : Pat<(v4i32 (bitconvert v2f64:$A)), (COPY_TO_REGCLASS $A, VRRC)>; def : Pat<(v8i16 (bitconvert v2f64:$A)), @@ -772,6 +776,8 @@ def : Pat<(v8i16 (bitconvert v2f64:$A)), def : Pat<(v16i8 (bitconvert v2f64:$A)), (COPY_TO_REGCLASS $A, VRRC)>; +def : Pat<(v2i64 (bitconvert v4f32:$A)), + (COPY_TO_REGCLASS $A, VSRC)>; def : Pat<(v2i64 (bitconvert v4i32:$A)), (COPY_TO_REGCLASS $A, VSRC)>; def : Pat<(v2i64 (bitconvert v8i16:$A)), @@ -779,6 +785,8 @@ def : Pat<(v2i64 (bitconvert v8i16:$A)), def : Pat<(v2i64 (bitconvert v16i8:$A)), (COPY_TO_REGCLASS $A, VSRC)>; +def : Pat<(v4f32 (bitconvert v2i64:$A)), + (COPY_TO_REGCLASS $A, VRRC)>; def : Pat<(v4i32 (bitconvert v2i64:$A)), (COPY_TO_REGCLASS $A, VRRC)>; def : Pat<(v8i16 (bitconvert v2i64:$A)), |

