; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -march=amdgcn -mcpu=gfx908 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s

define amdgpu_kernel void @divergent_or3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: divergent_or3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v3, 4, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx3 v[0:2], v3, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_or3_b32 v0, v1, v0, v2
; GCN-NEXT:    v_not_b32_e32 v0, v0
; GCN-NEXT:    global_store_dword v3, v0, s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %i2, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = or i32 %i5, %i4
  %i8 = or i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %i2, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @divergent_or3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: divergent_or3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v6, 5, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx2 v[4:5], v6, s[0:1] offset:16
; GCN-NEXT:    global_load_dwordx4 v[0:3], v6, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_or3_b32 v1, v3, v1, v5
; GCN-NEXT:    v_or3_b32 v0, v2, v0, v4
; GCN-NEXT:    v_not_b32_e32 v0, v0
; GCN-NEXT:    v_not_b32_e32 v1, v1
; GCN-NEXT:    global_store_dwordx2 v6, v[0:1], s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %i2, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = or i64 %i5, %i4
  %i8 = or i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %i2, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

define amdgpu_kernel void @divergent_and3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: divergent_and3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v3, 4, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx3 v[0:2], v3, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_and_b32_e32 v0, v1, v0
; GCN-NEXT:    v_and_b32_e32 v0, v0, v2
; GCN-NEXT:    v_not_b32_e32 v0, v0
; GCN-NEXT:    global_store_dword v3, v0, s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %i2, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = and i32 %i5, %i4
  %i8 = and i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %i2, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @divergent_and3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: divergent_and3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v6, 5, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx2 v[4:5], v6, s[0:1] offset:16
; GCN-NEXT:    global_load_dwordx4 v[0:3], v6, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_and_b32_e32 v1, v3, v1
; GCN-NEXT:    v_and_b32_e32 v0, v2, v0
; GCN-NEXT:    v_and_b32_e32 v1, v1, v5
; GCN-NEXT:    v_and_b32_e32 v0, v0, v4
; GCN-NEXT:    v_not_b32_e32 v0, v0
; GCN-NEXT:    v_not_b32_e32 v1, v1
; GCN-NEXT:    global_store_dwordx2 v6, v[0:1], s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %i2, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = and i64 %i5, %i4
  %i8 = and i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %i2, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

define amdgpu_kernel void @divergent_xor3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: divergent_xor3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v3, 4, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx3 v[0:2], v3, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_xor_b32_e32 v0, v1, v0
; GCN-NEXT:    v_xnor_b32_e32 v0, v0, v2
; GCN-NEXT:    global_store_dword v3, v0, s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %i2, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = xor i32 %i5, %i4
  %i8 = xor i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %i2, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @divergent_xor3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: divergent_xor3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[0:1], s[0:1], 0x24
; GCN-NEXT:    v_lshlrev_b32_e32 v6, 5, v0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    global_load_dwordx2 v[4:5], v6, s[0:1] offset:16
; GCN-NEXT:    global_load_dwordx4 v[0:3], v6, s[0:1]
; GCN-NEXT:    s_waitcnt vmcnt(0)
; GCN-NEXT:    v_xor_b32_e32 v1, v3, v1
; GCN-NEXT:    v_xor_b32_e32 v0, v2, v0
; GCN-NEXT:    v_xnor_b32_e32 v0, v0, v4
; GCN-NEXT:    v_xnor_b32_e32 v1, v1, v5
; GCN-NEXT:    global_store_dwordx2 v6, v[0:1], s[0:1]
; GCN-NEXT:    s_endpgm
bb:
  %i = tail call i32 @llvm.amdgcn.workitem.id.x()
  %i1 = zext i32 %i to i64
  %i2 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 %i1
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %i2, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = xor i64 %i5, %i4
  %i8 = xor i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %i2, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

define amdgpu_kernel void @uniform_or3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: uniform_or3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v0, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_or_b32 s0, s1, s0
; GCN-NEXT:    s_nor_b32 s0, s0, s2
; GCN-NEXT:    v_mov_b32_e32 v1, s0
; GCN-NEXT:    global_store_dword v0, v1, s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %arg, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = or i32 %i5, %i4
  %i8 = or i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @uniform_or3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: uniform_or3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v2, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x10
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_or_b64 s[0:1], s[2:3], s[0:1]
; GCN-NEXT:    s_nor_b64 s[0:1], s[0:1], s[6:7]
; GCN-NEXT:    v_mov_b32_e32 v0, s0
; GCN-NEXT:    v_mov_b32_e32 v1, s1
; GCN-NEXT:    global_store_dwordx2 v2, v[0:1], s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %arg, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = or i64 %i5, %i4
  %i8 = or i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

define amdgpu_kernel void @uniform_and3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: uniform_and3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v0, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_and_b32 s0, s1, s0
; GCN-NEXT:    s_nand_b32 s0, s0, s2
; GCN-NEXT:    v_mov_b32_e32 v1, s0
; GCN-NEXT:    global_store_dword v0, v1, s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %arg, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = and i32 %i5, %i4
  %i8 = and i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @uniform_and3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: uniform_and3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v2, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x10
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_and_b64 s[0:1], s[2:3], s[0:1]
; GCN-NEXT:    s_nand_b64 s[0:1], s[0:1], s[6:7]
; GCN-NEXT:    v_mov_b32_e32 v0, s0
; GCN-NEXT:    v_mov_b32_e32 v1, s1
; GCN-NEXT:    global_store_dwordx2 v2, v[0:1], s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %arg, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = and i64 %i5, %i4
  %i8 = and i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

define amdgpu_kernel void @uniform_xor3_b32(<3 x i32> addrspace(1)* %arg) {
; GCN-LABEL: uniform_xor3_b32:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v0, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_xor_b32 s0, s1, s0
; GCN-NEXT:    s_xnor_b32 s0, s0, s2
; GCN-NEXT:    v_mov_b32_e32 v1, s0
; GCN-NEXT:    global_store_dword v0, v1, s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i32>, <3 x i32> addrspace(1)* %arg, align 16
  %i4 = extractelement <3 x i32> %i3, i64 0
  %i5 = extractelement <3 x i32> %i3, i64 1
  %i6 = extractelement <3 x i32> %i3, i64 2
  %i7 = xor i32 %i5, %i4
  %i8 = xor i32 %i7, %i6
  %i9 = xor i32 %i8, -1
  %i10 = getelementptr inbounds <3 x i32>, <3 x i32> addrspace(1)* %arg, i64 0, i64 0
  store i32 %i9, i32 addrspace(1)* %i10, align 16
  ret void
}

define amdgpu_kernel void @uniform_xor3_b64(<3 x i64> addrspace(1)* %arg) {
; GCN-LABEL: uniform_xor3_b64:
; GCN:       ; %bb.0: ; %bb
; GCN-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x24
; GCN-NEXT:    v_mov_b32_e32 v2, 0
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x0
; GCN-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x10
; GCN-NEXT:    s_waitcnt lgkmcnt(0)
; GCN-NEXT:    s_xor_b64 s[0:1], s[2:3], s[0:1]
; GCN-NEXT:    s_xnor_b64 s[0:1], s[0:1], s[6:7]
; GCN-NEXT:    v_mov_b32_e32 v0, s0
; GCN-NEXT:    v_mov_b32_e32 v1, s1
; GCN-NEXT:    global_store_dwordx2 v2, v[0:1], s[4:5]
; GCN-NEXT:    s_endpgm
bb:
  %i3 = load <3 x i64>, <3 x i64> addrspace(1)* %arg, align 32
  %i4 = extractelement <3 x i64> %i3, i64 0
  %i5 = extractelement <3 x i64> %i3, i64 1
  %i6 = extractelement <3 x i64> %i3, i64 2
  %i7 = xor i64 %i5, %i4
  %i8 = xor i64 %i7, %i6
  %i9 = xor i64 %i8, -1
  %i10 = getelementptr inbounds <3 x i64>, <3 x i64> addrspace(1)* %arg, i64 0, i64 0
  store i64 %i9, i64 addrspace(1)* %i10, align 32
  ret void
}

declare i32 @llvm.amdgcn.workitem.id.x()
