Skip to content

Instantly share code, notes, and snippets.

@filcab
Created April 29, 2014 07:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save filcab/11392909 to your computer and use it in GitHub Desktop.
Save filcab/11392909 to your computer and use it in GitHub Desktop.
insertps-opt-U0YW+U0ZW
define <4 x i32> @move_1_to_2(<4 x i32> %x, <4 x i32> %a){
entry:
%vecext1 = extractelement <4 x i32> %x, i32 1
%vecext2 = extractelement <4 x i32> %x, i32 3
%vecinit2 = insertelement <4 x i32> undef, i32 %vecext1, i32 2
%vecinit3 = insertelement <4 x i32> %vecinit2, i32 0, i32 1
%vecinit4 = insertelement <4 x i32> %vecinit3, i32 %vecext2, i32 3
ret <4 x i32> %vecinit4
}
define <4 x i32> @dont_move_elems(<4 x i32> %x, <4 x i32> %a){
entry:
%vecext1 = extractelement <4 x i32> %x, i32 2
%vecext2 = extractelement <4 x i32> %x, i32 3
%vecinit2 = insertelement <4 x i32> undef, i32 %vecext1, i32 2
%vecinit3 = insertelement <4 x i32> %vecinit2, i32 0, i32 1
%vecinit4 = insertelement <4 x i32> %vecinit3, i32 %vecext2, i32 3
ret <4 x i32> %vecinit4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment