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