[PATCH] D49836: AMDGPU: Remove broken ternary i16 patterns

Jan Vesely via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 26 10:01:03 PDT 2018


jvesely added inline comments.


================
Comment at: lib/Target/AMDGPU/VOP3Instructions.td:469-474
-def : GCNPat<
-  (i64 (op3 (op2 (op1 i16:$src0, i16:$src1), i16:$src2))),
-   (REG_SEQUENCE VReg_64,
-     (inst i16:$src0, i16:$src1, i16:$src2, (i1 0)), sub0,
-     (V_MOV_B32_e32 (i32 0)), sub1)
->;
----------------
arsenm wrote:
> These can be fixed, they don't need to be dropped.
> 
> It's also more complicated because since gfx9 there is a control bit for whether the high 16-bits are zeroed or preserved which we haven't implemented
There is no reason to preserve and fix them since they'd need to be the same instructions which end up being used anyway. There is nothing to be gained from having the extension part in the pattern.

the gfx9 part does not apply you can drop zero_extend if v_mad_i16  clears those bits, but that should not be handled in this pattern.


Repository:
  rL LLVM

https://reviews.llvm.org/D49836





More information about the llvm-commits mailing list