diff options
author | Chris Lattner <sabre@nondot.org> | 2007-08-03 16:09:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-08-03 16:09:33 +0000 |
commit | fb837dccacbf85180122453a9dab340787880773 (patch) | |
tree | 016ea370fd89f632f974f82ac2727979f451eb71 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 177bd450e0a15247d8d7267c973cc9e9a8a6b139 (diff) | |
download | bcm5719-llvm-fb837dccacbf85180122453a9dab340787880773.tar.gz bcm5719-llvm-fb837dccacbf85180122453a9dab340787880773.zip |
In the common case where we are shuffling a vector, emit an
llvm vector shuffle instead of a bunch of insert/extract operations.
For: vec4 = vec4.yyyy; // splat
Emit:
%tmp1 = shufflevector <4 x float> %tmp, <4 x float> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 >
instead of:
%tmp1 = extractelement <4 x float> %tmp, i32 1
%tmp2 = insertelement <4 x float> undef, float %tmp1, i32 0
%tmp3 = extractelement <4 x float> %tmp, i32 1
%tmp4 = insertelement <4 x float> %tmp2, float %tmp3, i32 1
%tmp5 = extractelement <4 x float> %tmp, i32 1
%tmp6 = insertelement <4 x float> %tmp4, float %tmp5, i32 2
%tmp7 = extractelement <4 x float> %tmp, i32 1
%tmp8 = insertelement <4 x float> %tmp6, float %tmp7, i32 3
llvm-svn: 40779
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions