; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 < %s | \
; RUN:   FileCheck %s  -check-prefix=CHECK-LE
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | \
; RUN:   FileCheck %s -check-prefix=CHECK-BE

; Check for a vector merge instruction using two inputs
; The shufflevector specifies the even elements, using big endian element 
; ordering. If run on a big endian machine, this should produce the vmrgew 
; instruction. If run on a little endian machine, this should produce the
; vmrgow instruction. Note also that on little endian the input registers 
; are swapped also.
define void @check_merge_even_xy(ptr %A, ptr %B) {
entry:
; CHECK-LE-LABEL: @check_merge_even_xy
; CHECK-BE-LABEL: @check_merge_even_xy
        %tmp = load <16 x i8>, ptr %A
	%tmp2 = load <16 x i8>, ptr %B
	%tmp3 = shufflevector <16 x i8> %tmp, <16 x i8> %tmp2, 
	      		      <16 x i32> <i32 0, i32 1, i32 2, i32 3, 
			      	    	  i32 16, i32 17, i32 18, i32 19, 
					  i32 8, i32 9, i32 10, i32 11, 
					  i32 24, i32 25, i32 26, i32 27>
; CHECK-LE: vmrgow 2, 3, 2
; CHECK-BE: vmrgew 2, 2, 3
      	store <16 x i8> %tmp3, ptr %A
	ret void
; CHECK-LE: blr
; CHECK-BE: blr
}

; Check for a vector merge instruction using a single input. 
; The shufflevector specifies the even elements, using big endian element 
; ordering. If run on a big endian machine, this should produce the vmrgew 
; instruction. If run on a little endian machine, this should produce the
; vmrgow instruction. 
define void @check_merge_even_xx(ptr %A) {
entry:
; CHECK-LE-LABEL: @check_merge_even_xx
; CHECK-BE-LABEL: @check_merge_even_xx
        %tmp = load <16 x i8>, ptr %A
	%tmp2 = shufflevector <16 x i8> %tmp, <16 x i8> %tmp, 
	      		      <16 x i32> <i32 0, i32 1, i32 2, i32 3, 
			      	          i32 0, i32 1, i32 2, i32 3, 
					  i32 8, i32 9, i32 10, i32 11, 
					  i32 8, i32 9, i32 10, i32 11>
; CHECK-LE: vmrgow 2, 2, 2
; CHECK-BE: vmrgew 2, 2, 2
  	store <16 x i8> %tmp2, ptr %A
	ret void
; CHECK-LE: blr
; CHECK-BE: blr       
}

; Check for a vector merge instruction using two inputs.
; The shufflevector specifies the odd elements, using big endian element 
; ordering. If run on a big endian machine, this should produce the vmrgow 
; instruction. If run on a little endian machine, this should produce the
; vmrgew instruction. Note also that on little endian the input registers 
; are swapped also.
define void @check_merge_odd_xy(ptr %A, ptr %B) {
entry:
; CHECK-LE-LABEL: @check_merge_odd_xy
; CHECK-BE-LABEL: @check_merge_odd_xy
        %tmp = load <16 x i8>, ptr %A
	%tmp2 = load <16 x i8>, ptr %B
	%tmp3 = shufflevector <16 x i8> %tmp, <16 x i8> %tmp2, 
	      		      <16 x i32> <i32 4, i32 5, i32 6, i32 7, 
			      	    	  i32 20, i32 21, i32 22, i32 23, 
					  i32 12, i32 13, i32 14, i32 15, 
					  i32 28, i32 29, i32 30, i32 31>
; CHECK-LE: vmrgew 2, 3, 2
; CHECK-BE: vmrgow 2, 2, 3
        store <16 x i8> %tmp3, ptr %A
	ret void
; CHECK-LE: blr
; CHECK-BE: blr
}

; Check for a vector merge instruction using a single input.
; The shufflevector specifies the odd elements, using big endian element 
; ordering. If run on a big endian machine, this should produce the vmrgow 
; instruction. If run on a little endian machine, this should produce the
; vmrgew instruction. 
define void @check_merge_odd_xx(ptr %A) {
entry:
; CHECK-LE-LABEL: @check_merge_odd_xx
; CHECK-BE-LABEL: @check_merge_odd_xx
        %tmp = load <16 x i8>, ptr %A
	%tmp2 = shufflevector <16 x i8> %tmp, <16 x i8> %tmp, 
	      		      <16 x i32> <i32 4, i32 5, i32 6, i32 7, 
			      	    	  i32 4, i32 5, i32 6, i32 7, 
					  i32 12, i32 13, i32 14, i32 15, 
					  i32 12, i32 13, i32 14, i32 15>
; CHECK-LE: vmrgew 2, 2, 2
; CHECK-BE: vmrgow 2, 2, 2
        store <16 x i8> %tmp2, ptr %A
	ret void
; CHECK-LE: blr
; CHECK-BE: blr
}

