%0=bitcastfloat*%x_addr.0to<4xfloat>*; <<4 x float>*> [#uses=1]
%1=load<4xfloat>*%0,align16; <<4 x float>> [#uses=4]
%tmp20=bitcast<4xfloat>%1to<4xi32>; <<4 x i32>> [#uses=1]
%tmp22=and<4xi32>%tmp20,<i322147483647,i322147483647,i322147483647,i322147483647>; <<4 x i32>> [#uses=1]
%tmp23=bitcast<4xi32>%tmp22to<4xfloat>; <<4 x float>> [#uses=1]
%tmp25=bitcast<4xfloat>%1to<4xi32>; <<4 x i32>> [#uses=1]
%tmp27=and<4xi32>%tmp25,<i32-2147483648,i32-2147483648,i32-2147483648,i32-2147483648>; <<4 x i32>> [#uses=2]
%tmp30=call<4xfloat>@llvm.x86.sse.cmp.ps(<4xfloat>%tmp23,<4xfloat><float8.388608e+06,float8.388608e+06,float8.388608e+06,float8.388608e+06>,i85); <<4 x float>> [#uses=1]
%tmp34=bitcast<4xfloat>%tmp30to<4xi32>; <<4 x i32>> [#uses=1]
%tmp36=xor<4xi32>%tmp34,<i32-1,i32-1,i32-1,i32-1>; <<4 x i32>> [#uses=1]
%tmp37=and<4xi32>%tmp36,<i321258291200,i321258291200,i321258291200,i321258291200>; <<4 x i32>> [#uses=1]
%tmp42=or<4xi32>%tmp37,%tmp27; <<4 x i32>> [#uses=1]
%tmp43=bitcast<4xi32>%tmp42to<4xfloat>; <<4 x float>> [#uses=2]
%tmp45=fadd<4xfloat>%1,%tmp43; <<4 x float>> [#uses=1]
%tmp47=fsub<4xfloat>%tmp45,%tmp43; <<4 x float>> [#uses=2]
%tmp49=call<4xfloat>@llvm.x86.sse.cmp.ps(<4xfloat>%1,<4xfloat>%tmp47,i81); <<4 x float>> [#uses=1]
%2=bitcast<4xfloat>%tmp49to<4xi32>; <<4 x i32>> [#uses=1]
%3=call<4xfloat>@llvm.x86.sse2.cvtdq2ps(<4xi32>%2)nounwindreadnone; <<4 x float>> [#uses=1]
%tmp53=fadd<4xfloat>%tmp47,%3; <<4 x float>> [#uses=1]
%tmp55=bitcast<4xfloat>%tmp53to<4xi32>; <<4 x i32>> [#uses=1]
%tmp57=or<4xi32>%tmp55,%tmp27; <<4 x i32>> [#uses=1]
%tmp58=bitcast<4xi32>%tmp57to<4xfloat>; <<4 x float>> [#uses=1]
%4=bitcastfloat*%y_addr.0to<4xfloat>*; <<4 x float>*> [#uses=1]