# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-optimize-exec-masking -o -  %s | FileCheck %s

--- |
  target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"

  define amdgpu_kernel void @optimize_if_and_saveexec_xor(i32 %z, i32 %v) #0 {
  main_body:
    %id = call i32 @llvm.amdgcn.workitem.id.x()
    %cc = icmp eq i32 %id, 0
    %0 = call { i1, i64 } @llvm.amdgcn.if(i1 %cc)
    %1 = extractvalue { i1, i64 } %0, 0
    %2 = extractvalue { i1, i64 } %0, 1
    br i1 %1, label %if, label %end

  if:                                               ; preds = %main_body
    %v.if = load volatile i32, i32 addrspace(1)* undef
    br label %end

  end:                                              ; preds = %if, %main_body
    %r = phi i32 [ 4, %main_body ], [ %v.if, %if ]
    call void @llvm.amdgcn.end.cf(i64 %2)
    store i32 %r, i32 addrspace(1)* undef
    ret void
  }

  define amdgpu_kernel void @optimize_if_and_saveexec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_or_saveexec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }


  define amdgpu_kernel void @optimize_if_and_saveexec_xor_valu_middle(i32 %z, i32 %v) #0 {
  main_body:
    %id = call i32 @llvm.amdgcn.workitem.id.x()
    %cc = icmp eq i32 %id, 0
    %0 = call { i1, i64 } @llvm.amdgcn.if(i1 %cc)
    %1 = extractvalue { i1, i64 } %0, 0
    %2 = extractvalue { i1, i64 } %0, 1
    store i32 %id, i32 addrspace(1)* undef
    br i1 %1, label %if, label %end

  if:                                               ; preds = %main_body
    %v.if = load volatile i32, i32 addrspace(1)* undef
    br label %end

  end:                                              ; preds = %if, %main_body
    %r = phi i32 [ 4, %main_body ], [ %v.if, %if ]
    call void @llvm.amdgcn.end.cf(i64 %2)
    store i32 %r, i32 addrspace(1)* undef
    ret void
  }

  define amdgpu_kernel void @optimize_if_and_saveexec_xor_wrong_reg(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_and_saveexec_xor_modify_copy_to_exec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_and_saveexec_xor_live_out_setexec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_unknown_saveexec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_andn2_saveexec(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  define amdgpu_kernel void @optimize_if_andn2_saveexec_no_commute(i32 %z, i32 %v)  #0 {
  main_body:
      br i1 undef, label %if, label %end

  if:
    br label %end

  end:
    ret void
  }

  ; Function Attrs: nounwind readnone
  declare i32 @llvm.amdgcn.workitem.id.x() #1

  declare { i1, i64 } @llvm.amdgcn.if(i1)

  declare void @llvm.amdgcn.end.cf(i64)


  attributes #0 = { nounwind }
  attributes #1 = { nounwind readnone }

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec_xor{{$}}
# CHECK: %sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 %vcc, implicit-def %exec, implicit-def %scc, implicit %exec
# CHECK-NEXT: %sgpr0_sgpr1 = S_XOR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: SI_MASK_BRANCH

name:            optimize_if_and_saveexec_xor
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec{{$}}
# CHECK: %sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 %vcc, implicit-def %exec, implicit-def %scc, implicit %exec
# CHECK-NEXT: SI_MASK_BRANCH

name:            optimize_if_and_saveexec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_or_saveexec{{$}}
# CHECK: %sgpr0_sgpr1 = S_OR_SAVEEXEC_B64 %vcc, implicit-def %exec, implicit-def %scc, implicit %exec
# CHECK-NEXT: SI_MASK_BRANCH

name:            optimize_if_or_saveexec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_OR_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec_xor_valu_middle
# CHECK: %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
# CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET %vgpr0, undef %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
# CHECK-NEXT: %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: %exec = COPY killed %sgpr2_sgpr3
# CHECK-NEXT: SI_MASK_BRANCH
name:            optimize_if_and_saveexec_xor_valu_middle
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    BUFFER_STORE_DWORD_OFFSET %vgpr0, undef %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec_xor_wrong_reg{{$}}
# CHECK: %sgpr0_sgpr1 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
# CHECK-NEXT: %sgpr0_sgpr1 = S_XOR_B64 undef %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: %exec = COPY %sgpr0_sgpr1
# CHECK-NEXT: SI_MASK_BRANCH %bb.2.end, implicit %exec
name:            optimize_if_and_saveexec_xor_wrong_reg
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr6 = S_MOV_B32 -1
    %sgpr7 = S_MOV_B32 61440
    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr0_sgpr1 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %sgpr0_sgpr1 = S_XOR_B64 undef %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term %sgpr0_sgpr1
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1 , %sgpr4_sgpr5_sgpr6_sgpr7
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1, %sgpr4_sgpr5_sgpr6_sgpr7

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec_xor_modify_copy_to_exec{{$}}
# CHECK: %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
# CHECK-NEXT: %sgpr2_sgpr3 = S_OR_B64 killed %sgpr2_sgpr3, 1, implicit-def %scc
# CHECK-NEXT: %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: %exec = COPY killed %sgpr2_sgpr3
# CHECK-NEXT: SI_MASK_BRANCH %bb.2.end, implicit %exec

name:            optimize_if_and_saveexec_xor_modify_copy_to_exec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %sgpr2_sgpr3 = S_OR_B64 killed %sgpr2_sgpr3, 1, implicit-def %scc
    %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr0 = S_MOV_B32 0
    %sgpr1 = S_MOV_B32 1
    %sgpr2 = S_MOV_B32 -1
    %sgpr3 = S_MOV_B32 61440
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_and_saveexec_xor_live_out_setexec{{$}}
# CHECK: %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
# CHECK-NEXT: %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: %exec = COPY %sgpr2_sgpr3
# CHECK-NEXT: SI_MASK_BRANCH
name:            optimize_if_and_saveexec_xor_live_out_setexec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %sgpr0_sgpr1 = S_XOR_B64 %sgpr2_sgpr3, killed %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1, %sgpr2_sgpr3
    S_SLEEP 0, implicit %sgpr2_sgpr3
    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...

# CHECK-LABEL: name: optimize_if_unknown_saveexec{{$}}
# CHECK: %sgpr0_sgpr1 = COPY %exec
# CHECK: %sgpr2_sgpr3 = S_LSHR_B64 %sgpr0_sgpr1, killed %vcc_lo, implicit-def %scc
# CHECK-NEXT: %exec = COPY killed %sgpr2_sgpr3
# CHECK-NEXT: SI_MASK_BRANCH %bb.2.end, implicit %exec

name:            optimize_if_unknown_saveexec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_LSHR_B64 %sgpr0_sgpr1, killed %vcc_lo, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_andn2_saveexec{{$}}
# CHECK: %sgpr0_sgpr1 = S_ANDN2_SAVEEXEC_B64 %vcc, implicit-def %exec, implicit-def %scc, implicit %exec
# CHECK-NEXT: SI_MASK_BRANCH

name:            optimize_if_andn2_saveexec
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_ANDN2_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
---
# CHECK-LABEL: name: optimize_if_andn2_saveexec_no_commute{{$}}
# CHECK: %sgpr2_sgpr3 = S_ANDN2_B64 killed %vcc, %sgpr0_sgpr1, implicit-def %scc
# CHECK-NEXT: %exec = COPY killed %sgpr2_sgpr3
# CHECK-NEXT: SI_MASK_BRANCH %bb.2.end, implicit %exec
name:            optimize_if_andn2_saveexec_no_commute
alignment:       0
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:
  - { reg: '%vgpr0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.main_body:
    liveins: %vgpr0

    %sgpr0_sgpr1 = COPY %exec
    %vcc = V_CMP_EQ_I32_e64 0, killed %vgpr0, implicit %exec
    %vgpr0 = V_MOV_B32_e32 4, implicit %exec
    %sgpr2_sgpr3 = S_ANDN2_B64 killed %vcc, %sgpr0_sgpr1, implicit-def %scc
    %exec = S_MOV_B64_term killed %sgpr2_sgpr3
    SI_MASK_BRANCH %bb.2.end, implicit %exec
    S_BRANCH %bb.1.if

  bb.1.if:
    liveins: %sgpr0_sgpr1

    %sgpr7 = S_MOV_B32 61440
    %sgpr6 = S_MOV_B32 -1
    %vgpr0 = BUFFER_LOAD_DWORD_OFFSET %sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, implicit %exec :: (volatile load 4 from `i32 addrspace(1)* undef`)

  bb.2.end:
    liveins: %vgpr0, %sgpr0_sgpr1

    %exec = S_OR_B64 %exec, killed %sgpr0_sgpr1, implicit-def %scc
    %sgpr3 = S_MOV_B32 61440
    %sgpr2 = S_MOV_B32 -1
    BUFFER_STORE_DWORD_OFFSET killed %vgpr0, %sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, implicit %exec :: (store 4 into `i32 addrspace(1)* undef`)
    S_ENDPGM

...
