summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuo Yejun <yejun.guo@intel.com>2015-10-14 05:28:51 +0800
committerYang Rong <rong.r.yang@intel.com>2015-12-18 14:47:36 +0800
commit1de3a76cfb558a76717b32fda782e27fa4367db8 (patch)
tree22c24c6174bfe7eb980317f43bf1efbf08cf20ef
parent1d7391151b929af6cc655ce876c6823125de9a6b (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.cpp4
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();
}
}