diff options
author | Guo Yejun <yejun.guo@intel.com> | 2015-10-14 05:28:51 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2015-12-18 14:47:36 +0800 |
commit | 1de3a76cfb558a76717b32fda782e27fa4367db8 (patch) | |
tree | 22c24c6174bfe7eb980317f43bf1efbf08cf20ef | |
parent | 1d7391151b929af6cc655ce876c6823125de9a6b (diff) |
fix uniform case for ByteGather
currently,the ByteGather generates IR as:
BYTE_GATHER(16) %109<0>:UD : %96<0,1,0>:UD 0x4:UD
MOV(1) %75<0>:UB : %109<32,8,4>:UB
Fix it to generate IR as:
BYTE_GATHER(16) %109<0>:UD : %96<0,1,0>:UD 0x4:UD
MOV(1) %75<0>:UB : %109<0,1,0>:UB
otherwise, there is regression issue of local copy propagation optimization
which uses %109<32,8,4>:UB
Signed-off-by: Guo Yejun <yejun.guo@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@intel.com>
-rw-r--r-- | backend/src/backend/gen_insn_selection.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp index 520aede0..aef7f154 100644 --- a/backend/src/backend/gen_insn_selection.cpp +++ b/backend/src/backend/gen_insn_selection.cpp @@ -3585,9 +3585,9 @@ namespace gbe sel.curr.execWidth = 1; } if (elemSize == GEN_BYTE_SCATTER_WORD) - sel.MOV(GenRegister::retype(value, GEN_TYPE_UW), GenRegister::unpacked_uw(dst)); + sel.MOV(GenRegister::retype(value, GEN_TYPE_UW), GenRegister::unpacked_uw(dst, isUniform)); else if (elemSize == GEN_BYTE_SCATTER_BYTE) - sel.MOV(GenRegister::retype(value, GEN_TYPE_UB), GenRegister::unpacked_ub(dst)); + sel.MOV(GenRegister::retype(value, GEN_TYPE_UB), GenRegister::unpacked_ub(dst, isUniform)); sel.pop(); } } |