diff options
author | Zhigang Gong <zhigang.gong@intel.com> | 2013-12-18 07:19:05 +0000 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2013-12-23 18:41:35 +0800 |
commit | 6e2d5ebf0a09590a3365302b088de20841ebd97e (patch) | |
tree | eed6f6a61896d199fb2dbeacc3be798a42ce4963 /kernels/compiler_displacement_map_element.cl | |
parent | 64b4ceb4366a99ede6b1f7665166ce121f9aa2a9 (diff) | |
download | beignet-6e2d5ebf0a09590a3365302b088de20841ebd97e.tar.gz |
GBE: adjust instruction order for load/function call for vector.
The previous implementation generates code as below:
%33 = extractelement <4 x i8> %32, i32 0
%34 = extractelement <4 x i8> %32, i32 1
%35 = extractelement <4 x i8> %32, i32 2
%36 = extractelement <4 x i8> %32, i32 3
%32 = load <4 x i8> addrspace(1)* %31, align 4, !tbaa !3
It may bring some potential problems in the consequent optimization pass.
Now fix adjust the extractelement instruction after the load instruction.
%32 = load <4 x i8> addrspace(1)* %31, align 4, !tbaa !3
%33 = extractelement <4 x i8> %32, i32 0
%34 = extractelement <4 x i8> %32, i32 1
%35 = extractelement <4 x i8> %32, i32 2
%36 = extractelement <4 x i8> %32, i32 3
This patch also move the dead code elimination pass after the scalarize pass.
As after scalarize pass, there may be some opportunity to remove more dead
instructions.
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Reviewed-by: "Yang, Rong R" <rong.r.yang@intel.com>
Diffstat (limited to 'kernels/compiler_displacement_map_element.cl')
0 files changed, 0 insertions, 0 deletions