1# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-optimize-exec-masking %s -o - | FileCheck -check-prefix=GCN %s 2 3--- 4# GCN-LABEL: name: reduce_and_saveexec 5# GCN: $exec = S_AND_B64 $exec, killed $vcc 6# GCN-NEXT: S_ENDPGM 7name: reduce_and_saveexec 8tracksRegLiveness: true 9body: | 10 bb.0: 11 $vcc = IMPLICIT_DEF 12 $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc 13 $exec = COPY killed $sgpr0_sgpr1 14 S_ENDPGM 15... 16--- 17# GCN-LABEL: name: reduce_and_saveexec_commuted 18# GCN: $exec = S_AND_B64 killed $vcc, $exec 19# GCN-NEXT: S_ENDPGM 20name: reduce_and_saveexec_commuted 21tracksRegLiveness: true 22body: | 23 bb.0: 24 $vcc = IMPLICIT_DEF 25 $sgpr0_sgpr1 = S_AND_B64 killed $vcc, $exec, implicit-def $scc 26 $exec = COPY killed $sgpr0_sgpr1 27 S_ENDPGM 28... 29--- 30# GCN-LABEL: name: reduce_and_saveexec_liveout 31# GCN: $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc 32# GCN-NEXT: $exec = COPY 33name: reduce_and_saveexec_liveout 34tracksRegLiveness: true 35body: | 36 bb.0: 37 $vcc = IMPLICIT_DEF 38 $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc 39 $exec = COPY $sgpr0_sgpr1 40 S_ENDPGM 41... 42--- 43# GCN-LABEL: name: and_saveexec 44# GCN: $sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 $vcc 45# GCN-NEXT: S_ENDPGM 46name: and_saveexec 47tracksRegLiveness: true 48body: | 49 bb.0: 50 $vcc = IMPLICIT_DEF 51 $sgpr0_sgpr1 = COPY $exec 52 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc 53 $exec = S_MOV_B64_term $sgpr2_sgpr3 54 S_ENDPGM 55... 56--- 57# GCN-LABEL: name: reduce_or_saveexec 58# GCN: $exec = S_OR_B64 $exec, killed $vcc 59# GCN-NEXT: S_ENDPGM 60name: reduce_or_saveexec 61tracksRegLiveness: true 62body: | 63 bb.0: 64 $vcc = IMPLICIT_DEF 65 $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc 66 $exec = COPY killed $sgpr0_sgpr1 67 S_ENDPGM 68... 69--- 70# GCN-LABEL: name: reduce_xor_saveexec 71# GCN: $exec = S_XOR_B64 $exec, killed $vcc 72# GCN-NEXT: S_ENDPGM 73name: reduce_xor_saveexec 74tracksRegLiveness: true 75body: | 76 bb.0: 77 $vcc = IMPLICIT_DEF 78 $sgpr0_sgpr1 = S_XOR_B64 $exec, killed $vcc, implicit-def $scc 79 $exec = COPY killed $sgpr0_sgpr1 80 S_ENDPGM 81... 82--- 83# GCN-LABEL: name: reduce_andn2_saveexec 84# GCN: $exec = S_ANDN2_B64 $exec, killed $vcc 85# GCN-NEXT: S_ENDPGM 86name: reduce_andn2_saveexec 87tracksRegLiveness: true 88body: | 89 bb.0: 90 $vcc = IMPLICIT_DEF 91 $sgpr0_sgpr1 = S_ANDN2_B64 $exec, killed $vcc, implicit-def $scc 92 $exec = COPY killed $sgpr0_sgpr1 93 S_ENDPGM 94... 95--- 96# GCN-LABEL: name: reduce_orn2_saveexec 97# GCN: $exec = S_ORN2_B64 $exec, killed $vcc 98# GCN-NEXT: S_ENDPGM 99name: reduce_orn2_saveexec 100tracksRegLiveness: true 101body: | 102 bb.0: 103 $vcc = IMPLICIT_DEF 104 $sgpr0_sgpr1 = S_ORN2_B64 $exec, killed $vcc, implicit-def $scc 105 $exec = COPY killed $sgpr0_sgpr1 106 S_ENDPGM 107... 108--- 109# GCN-LABEL: name: reduce_nand_saveexec 110# GCN: $exec = S_NAND_B64 $exec, killed $vcc 111# GCN-NEXT: S_ENDPGM 112name: reduce_nand_saveexec 113tracksRegLiveness: true 114body: | 115 bb.0: 116 $vcc = IMPLICIT_DEF 117 $sgpr0_sgpr1 = S_NAND_B64 $exec, killed $vcc, implicit-def $scc 118 $exec = COPY killed $sgpr0_sgpr1 119 S_ENDPGM 120... 121--- 122# GCN-LABEL: name: reduce_nor_saveexec 123# GCN: $exec = S_NOR_B64 $exec, killed $vcc 124# GCN-NEXT: S_ENDPGM 125name: reduce_nor_saveexec 126tracksRegLiveness: true 127body: | 128 bb.0: 129 $vcc = IMPLICIT_DEF 130 $sgpr0_sgpr1 = S_NOR_B64 $exec, killed $vcc, implicit-def $scc 131 $exec = COPY killed $sgpr0_sgpr1 132 S_ENDPGM 133... 134--- 135# GCN-LABEL: name: reduce_xnor_saveexec 136# GCN: $exec = S_XNOR_B64 $exec, killed $vcc 137# GCN-NEXT: S_ENDPGM 138name: reduce_xnor_saveexec 139tracksRegLiveness: true 140body: | 141 bb.0: 142 $vcc = IMPLICIT_DEF 143 $sgpr0_sgpr1 = S_XNOR_B64 $exec, killed $vcc, implicit-def $scc 144 $exec = COPY killed $sgpr0_sgpr1 145 S_ENDPGM 146... 147--- 148