diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-02-22 21:23:09 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-02-22 21:23:09 +0000 |
| commit | 65971d97b0d5182d36cfec472535dabe841ac3b7 (patch) | |
| tree | 3096f6da38a459049b71651b58a6e38b0f3cb26c /llvm/lib | |
| parent | 93e65ea733b2450e41d787d3f597fa8ccdfa23f0 (diff) | |
| download | bcm5719-llvm-65971d97b0d5182d36cfec472535dabe841ac3b7.tar.gz bcm5719-llvm-65971d97b0d5182d36cfec472535dabe841ac3b7.zip | |
[Hexagon] Add intrinsics for masked vector stores
Patch by Harsha Jagasia.
llvm-svn: 295879
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonIntrinsics.td | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td index d4f303bf6ff..c611857ec26 100644 --- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td +++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td @@ -1347,6 +1347,25 @@ def: T_stc_pat<S2_storeri_pci, int_hexagon_circ_stw, s4_2ImmPred, I32>; def: T_stc_pat<S2_storerd_pci, int_hexagon_circ_std, s4_3ImmPred, I64>; def: T_stc_pat<S2_storerf_pci, int_hexagon_circ_sthhi, s4_1ImmPred, I32>; +multiclass MaskedStore <InstHexagon MI, Intrinsic IntID> { + def : Pat<(IntID VecPredRegs:$src1, IntRegs:$src2, VectorRegs:$src3), + (MI VecPredRegs:$src1, IntRegs:$src2, #0, VectorRegs:$src3)>, + Requires<[UseHVXSgl]>; + + def : Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1, + IntRegs:$src2, + VectorRegs128B:$src3), + (!cast<InstHexagon>(MI#"_128B") VecPredRegs128B:$src1, + IntRegs:$src2, #0, + VectorRegs128B:$src3)>, + Requires<[UseHVXDbl]>; +} + +defm : MaskedStore <V6_vS32b_qpred_ai, int_hexagon_V6_vmaskedstoreq>; +defm : MaskedStore <V6_vS32b_nqpred_ai, int_hexagon_V6_vmaskedstorenq>; +defm : MaskedStore <V6_vS32b_nt_qpred_ai, int_hexagon_V6_vmaskedstorentq>; +defm : MaskedStore <V6_vS32b_nt_nqpred_ai, int_hexagon_V6_vmaskedstorentnq>; + include "HexagonIntrinsicsV3.td" include "HexagonIntrinsicsV4.td" include "HexagonIntrinsicsV5.td" |

