diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-30 06:31:30 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-09-30 06:31:30 +0000 |
| commit | 317d991fa5127df0758342e83632ee1658a51c1c (patch) | |
| tree | 5cbd488ac628c02cc33ec751c611fc0c90c4cd57 /llvm/lib/Target | |
| parent | 34f9e98aaecd1dbe58c255119d69b83e1019d7c1 (diff) | |
| download | bcm5719-llvm-317d991fa5127df0758342e83632ee1658a51c1c.tar.gz bcm5719-llvm-317d991fa5127df0758342e83632ee1658a51c1c.zip | |
AMDGPU/GlobalISel: Fix select for v2s16 and/or/xor
llvm-svn: 373180
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/VOP2Instructions.td | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/llvm/lib/Target/AMDGPU/VOP2Instructions.td b/llvm/lib/Target/AMDGPU/VOP2Instructions.td index 0dda9687a15..e5f215fbcd7 100644 --- a/llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -777,6 +777,23 @@ class ZExt_i16_i1_Pat <SDNode ext> : GCNPat < $src) >; +foreach vt = [i16, v2i16] in { +def : GCNPat < + (and vt:$src0, vt:$src1), + (V_AND_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) +>; + +def : GCNPat < + (or vt:$src0, vt:$src1), + (V_OR_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) +>; + +def : GCNPat < + (xor vt:$src0, vt:$src1), + (V_XOR_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) +>; +} + let Predicates = [Has16BitInsts] in { let Predicates = [Has16BitInsts, isGFX7GFX8GFX9] in { @@ -799,21 +816,6 @@ defm : Arithmetic_i16_Pats<umin, V_MIN_U16_e64, 1>; defm : Arithmetic_i16_Pats<umax, V_MAX_U16_e64, 1>; } -def : GCNPat < - (and i16:$src0, i16:$src1), - (V_AND_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) ->; - -def : GCNPat < - (or i16:$src0, i16:$src1), - (V_OR_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) ->; - -def : GCNPat < - (xor i16:$src0, i16:$src1), - (V_XOR_B32_e64 VSrc_b32:$src0, VSrc_b32:$src1) ->; - let Predicates = [Has16BitInsts, isGFX7GFX8GFX9] in { defm : Bits_OpsRev_i16_Pats<shl, V_LSHLREV_B16_e64>; defm : Bits_OpsRev_i16_Pats<srl, V_LSHRREV_B16_e64>; |

