[llvm] [GlobalISel] Add or_and_and pattern from SelectionDAG (PR #204618)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 18 08:46:57 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 175930 tests passed
* 3513 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=aarch64 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll --check-prefixes=CHECK,CHECK-SD
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=0 -mtriple=aarch64
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll --check-prefixes=CHECK,CHECK-SD
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -mtriple=aarch64 < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll --check-prefixes=CHECK,CHECK-GI
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel=1 -mtriple=aarch64
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll --check-prefixes=CHECK,CHECK-GI
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:8:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr w0, w0, w1
# | ^
# | <stdin>:8:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:10:2: note: possible intended match here
# | orr w0, w8, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:21:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr x0, x0, x1
# | ^
# | <stdin>:21:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:23:2: note: possible intended match here
# | orr x0, x8, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:34:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:36:2: note: 'next' match was here
# | orr v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:34:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:35:1: note: non-matching line after previous match is here
# | bic v0.16b, v0.16b, v1.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:53:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: orn w0, w0, w1
# | ^
# | <stdin>:47:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:49:2: note: possible intended match here
# | orn w0, w8, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:72:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: orn x0, x0, x1
# | ^
# | <stdin>:60:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:62:2: note: possible intended match here
# | orn x0, x8, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:91:18: error: CHECK-GI-NEXT: is not on the line after the previous match
# | ; CHECK-GI-NEXT: orn v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:75:2: note: 'next' match was here
# | orn v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:73:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:74:1: note: non-matching line after previous match is here
# | and v0.16b, v0.16b, v1.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:110:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: and w0, w0, w1
# | ^
# | <stdin>:86:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:88:2: note: possible intended match here
# | and w0, w8, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:129:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: and x0, x0, x1
# | ^
# | <stdin>:99:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:101:2: note: possible intended match here
# | and x0, x8, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:148:18: error: CHECK-GI-NEXT: is not on the line after the previous match
# | ; CHECK-GI-NEXT: and v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:114:2: note: 'next' match was here
# | and v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:112:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:113:1: note: non-matching line after previous match is here
# | orn v0.16b, v0.16b, v1.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:167:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: bic w0, w0, w1
# | ^
# | <stdin>:125:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:127:2: note: possible intended match here
# | bic w0, w8, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:186:18: error: CHECK-GI-NEXT: expected string not found in input
# | ; CHECK-GI-NEXT: bic x0, x0, x1
# | ^
# | <stdin>:138:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:140:2: note: possible intended match here
# | bic x0, x8, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:205:18: error: CHECK-GI-NEXT: is not on the line after the previous match
# | ; CHECK-GI-NEXT: bic v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:153:2: note: 'next' match was here
# | bic v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:151:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:152:1: note: non-matching line after previous match is here
# | orr v0.16b, v0.16b, v1.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:218:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr w0, w0, w1
# | ^
# | <stdin>:164:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:166:2: note: possible intended match here
# | orr w9, w0, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:231:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr w0, w0, w1
# | ^
# | <stdin>:178:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:179:3: note: possible intended match here
# | eor w8, w0, w1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:244:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr x0, x0, x1
# | ^
# | <stdin>:192:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:194:2: note: possible intended match here
# | orr x9, x0, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:257:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr x0, x0, x1
# | ^
# | <stdin>:206:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:207:3: note: possible intended match here
# | eor x8, x0, x1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:270:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:222:2: note: 'next' match was here
# | orr v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:220:20: note: previous match ended here
# | // %bb.0: // %entry
# | ^
# | <stdin>:221:1: note: non-matching line after previous match is here
# | eor v2.16b, v0.16b, v1.16b
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll:283:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b
# | ^
# | <stdin>:234:20: note: scanning from here
# | // %bb.0: // %entry
# | ^
# | <stdin>:235:3: note: possible intended match here
# | eor v2.16b, v0.16b, v1.16b
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: .file "<stdin>"
# | 2: .text
# | 3: .globl or_and_xor_to_or // -- Begin function or_and_xor_to_or
# | 4: .p2align 2
# | 5: .type or_and_xor_to_or, at function
# | 6: or_and_xor_to_or: // @or_and_xor_to_or
# | 7: .cfi_startproc
# | 8: // %bb.0: // %entry
# | next:8'0 X error: no match found
# | 9: bic w8, w0, w1
# | next:8'0 ~~~~~~~~~~~~~~~~
# | 10: orr w0, w8, w1
# | next:8'0 ~~~~~~~~~~~~~~~~
# | next:8'1 ? possible intended match
# | 11: ret
# | next:8'0 ~~~~~
# | 12: .Lfunc_end0:
# | next:8'0 ~~~~~~~~~~~~~
# | 13: .size or_and_xor_to_or, .Lfunc_end0-or_and_xor_to_or
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: .cfi_endproc
# | next:8'0 ~~~~~~~~~~~~~~
# | 15: // -- End function
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~
# | 16: .globl or_and_xor_to_or_i64 // -- Begin function or_and_xor_to_or_i64
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: .p2align 2
# | next:8'0 ~~~~~~~~~~~~
# | 18: .type or_and_xor_to_or_i64, at function
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: or_and_xor_to_or_i64: // @or_and_xor_to_or_i64
# | next:8'0 ~~~~~~~~~~~~~~~~~~~~~
# | 20: .cfi_startproc
# | 21: // %bb.0: // %entry
# | next:21'0 X error: no match found
# | 22: bic x8, x0, x1
# | next:21'0 ~~~~~~~~~~~~~~~~
# | 23: orr x0, x8, x1
# | next:21'0 ~~~~~~~~~~~~~~~~
# | next:21'1 ? possible intended match
# | 24: ret
# | next:21'0 ~~~~~
# | 25: .Lfunc_end1:
# | next:21'0 ~~~~~~~~~~~~~
# | 26: .size or_and_xor_to_or_i64, .Lfunc_end1-or_and_xor_to_or_i64
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 27: .cfi_endproc
# | next:21'0 ~~~~~~~~~~~~~~
# | 28: // -- End function
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 31: .type or_and_xor_to_or_vector, at function
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 32: or_and_xor_to_or_vector: // @or_and_xor_to_or_vector
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 33: .cfi_startproc
# | 34: // %bb.0: // %entry
# | 35: bic v0.16b, v0.16b, v1.16b
# | 36: orr v0.16b, v0.16b, v1.16b
# | next:34 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 37: ret
# | 38: .Lfunc_end2:
# | 39: .size or_and_xor_to_or_vector, .Lfunc_end2-or_and_xor_to_or_vector
# | 40: .cfi_endproc
# | 41: // -- End function
# | 42: .globl or_and_xor_to_xor_or // -- Begin function or_and_xor_to_xor_or
# | 43: .p2align 2
# | 44: .type or_and_xor_to_xor_or, at function
# | 45: or_and_xor_to_xor_or: // @or_and_xor_to_xor_or
# | 46: .cfi_startproc
# | 47: // %bb.0: // %entry
# | next:53'0 X error: no match found
# | 48: and w8, w0, w1
# | next:53'0 ~~~~~~~~~~~~~~~~
# | 49: orn w0, w8, w1
# | next:53'0 ~~~~~~~~~~~~~~~~
# | next:53'1 ? possible intended match
# | 50: ret
# | next:53'0 ~~~~~
# | 51: .Lfunc_end3:
# | next:53'0 ~~~~~~~~~~~~~
# | 52: .size or_and_xor_to_xor_or, .Lfunc_end3-or_and_xor_to_xor_or
# | next:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 53: .cfi_endproc
# | next:53'0 ~~~~~~~~~~~~~~
# | 54: // -- End function
# | next:53'0 ~~~~~~~~~~~~~~~~~~~~
# | 55: .globl or_and_xor_to_xor_or_i64 // -- Begin function or_and_xor_to_xor_or_i64
# | next:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 56: .p2align 2
# | next:53'0 ~~~~~~~~~~~~
# | 57: .type or_and_xor_to_xor_or_i64, at function
# | next:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 58: or_and_xor_to_xor_or_i64: // @or_and_xor_to_xor_or_i64
# | next:53'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 59: .cfi_startproc
# | 60: // %bb.0: // %entry
# | next:72'0 X error: no match found
# | 61: and x8, x0, x1
# | next:72'0 ~~~~~~~~~~~~~~~~
# | 62: orn x0, x8, x1
# | next:72'0 ~~~~~~~~~~~~~~~~
# | next:72'1 ? possible intended match
# | 63: ret
# | next:72'0 ~~~~~
# | 64: .Lfunc_end4:
# | next:72'0 ~~~~~~~~~~~~~
# | 65: .size or_and_xor_to_xor_or_i64, .Lfunc_end4-or_and_xor_to_xor_or_i64
# | next:72'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 66: .cfi_endproc
# | next:72'0 ~~~~~~~~~~~~~~
# | 67: // -- End function
# | next:72'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 70: .type or_and_xor_to_xor_or_vector, at function
# | next:72'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 71: or_and_xor_to_xor_or_vector: // @or_and_xor_to_xor_or_vector
# | next:72'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 72: .cfi_startproc
# | 73: // %bb.0: // %entry
# | 74: and v0.16b, v0.16b, v1.16b
# | 75: orn v0.16b, v0.16b, v1.16b
# | next:91 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 76: ret
# | 77: .Lfunc_end5:
# | 78: .size or_and_xor_to_xor_or_vector, .Lfunc_end5-or_and_xor_to_xor_or_vector
# | 79: .cfi_endproc
# | 80: // -- End function
# | 81: .globl and_or_xor_to_and // -- Begin function and_or_xor_to_and
# | 82: .p2align 2
# | 83: .type and_or_xor_to_and, at function
# | 84: and_or_xor_to_and: // @and_or_xor_to_and
# | 85: .cfi_startproc
# | 86: // %bb.0: // %entry
# | next:110'0 X error: no match found
# | 87: orn w8, w0, w1
# | next:110'0 ~~~~~~~~~~~~~~~~
# | 88: and w0, w8, w1
# | next:110'0 ~~~~~~~~~~~~~~~~
# | next:110'1 ? possible intended match
# | 89: ret
# | next:110'0 ~~~~~
# | 90: .Lfunc_end6:
# | next:110'0 ~~~~~~~~~~~~~
# | 91: .size and_or_xor_to_and, .Lfunc_end6-and_or_xor_to_and
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 92: .cfi_endproc
# | next:110'0 ~~~~~~~~~~~~~~
# | 93: // -- End function
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~
# | 94: .globl and_or_xor_to_and_i64 // -- Begin function and_or_xor_to_and_i64
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 95: .p2align 2
# | next:110'0 ~~~~~~~~~~~~
# | 96: .type and_or_xor_to_and_i64, at function
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 97: and_or_xor_to_and_i64: // @and_or_xor_to_and_i64
# | next:110'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 98: .cfi_startproc
# | 99: // %bb.0: // %entry
# | next:129'0 X error: no match found
# | 100: orn x8, x0, x1
# | next:129'0 ~~~~~~~~~~~~~~~~
# | 101: and x0, x8, x1
# | next:129'0 ~~~~~~~~~~~~~~~~
# | next:129'1 ? possible intended match
# | 102: ret
# | next:129'0 ~~~~~
# | 103: .Lfunc_end7:
# | next:129'0 ~~~~~~~~~~~~~
# | 104: .size and_or_xor_to_and_i64, .Lfunc_end7-and_or_xor_to_and_i64
# | next:129'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 105: .cfi_endproc
# | next:129'0 ~~~~~~~~~~~~~~
# | 106: // -- End function
# | next:129'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 109: .type and_or_xor_to_and_vector, at function
# | next:129'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 110: and_or_xor_to_and_vector: // @and_or_xor_to_and_vector
# | next:129'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 111: .cfi_startproc
# | 112: // %bb.0: // %entry
# | 113: orn v0.16b, v0.16b, v1.16b
# | 114: and v0.16b, v0.16b, v1.16b
# | next:148 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 115: ret
# | 116: .Lfunc_end8:
# | 117: .size and_or_xor_to_and_vector, .Lfunc_end8-and_or_xor_to_and_vector
# | 118: .cfi_endproc
# | 119: // -- End function
# | 120: .globl and_or_xor_to_xor_and // -- Begin function and_or_xor_to_xor_and
# | 121: .p2align 2
# | 122: .type and_or_xor_to_xor_and, at function
# | 123: and_or_xor_to_xor_and: // @and_or_xor_to_xor_and
# | 124: .cfi_startproc
# | 125: // %bb.0: // %entry
# | next:167'0 X error: no match found
# | 126: orr w8, w0, w1
# | next:167'0 ~~~~~~~~~~~~~~~~
# | 127: bic w0, w8, w1
# | next:167'0 ~~~~~~~~~~~~~~~~
# | next:167'1 ? possible intended match
# | 128: ret
# | next:167'0 ~~~~~
# | 129: .Lfunc_end9:
# | next:167'0 ~~~~~~~~~~~~~
# | 130: .size and_or_xor_to_xor_and, .Lfunc_end9-and_or_xor_to_xor_and
# | next:167'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 131: .cfi_endproc
# | next:167'0 ~~~~~~~~~~~~~~
# | 132: // -- End function
# | next:167'0 ~~~~~~~~~~~~~~~~~~~~
# | 133: .globl and_or_xor_to_xor_and_i64 // -- Begin function and_or_xor_to_xor_and_i64
# | next:167'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 134: .p2align 2
# | next:167'0 ~~~~~~~~~~~~
# | 135: .type and_or_xor_to_xor_and_i64, at function
# | next:167'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 136: and_or_xor_to_xor_and_i64: // @and_or_xor_to_xor_and_i64
# | next:167'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 137: .cfi_startproc
# | 138: // %bb.0: // %entry
# | next:186'0 X error: no match found
# | 139: orr x8, x0, x1
# | next:186'0 ~~~~~~~~~~~~~~~~
# | 140: bic x0, x8, x1
# | next:186'0 ~~~~~~~~~~~~~~~~
# | next:186'1 ? possible intended match
# | 141: ret
# | next:186'0 ~~~~~
# | 142: .Lfunc_end10:
# | next:186'0 ~~~~~~~~~~~~~~
# | 143: .size and_or_xor_to_xor_and_i64, .Lfunc_end10-and_or_xor_to_xor_and_i64
# | next:186'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 144: .cfi_endproc
# | next:186'0 ~~~~~~~~~~~~~~
# | 145: // -- End function
# | next:186'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 148: .type and_or_xor_to_xor_and_vector, at function
# | next:186'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 149: and_or_xor_to_xor_and_vector: // @and_or_xor_to_xor_and_vector
# | next:186'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 150: .cfi_startproc
# | 151: // %bb.0: // %entry
# | 152: orr v0.16b, v0.16b, v1.16b
# | 153: bic v0.16b, v0.16b, v1.16b
# | next:205 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 154: ret
# | 155: .Lfunc_end11:
# | 156: .size and_or_xor_to_xor_and_vector, .Lfunc_end11-and_or_xor_to_xor_and_vector
# | 157: .cfi_endproc
# | 158: // -- End function
# | 159: .globl or_xor_or // -- Begin function or_xor_or
# | 160: .p2align 2
# | 161: .type or_xor_or, at function
# | 162: or_xor_or: // @or_xor_or
# | 163: .cfi_startproc
# | 164: // %bb.0: // %entry
# | next:218'0 X error: no match found
# | 165: eor w8, w0, w1
# | next:218'0 ~~~~~~~~~~~~~~~~
# | 166: orr w9, w0, w1
# | next:218'0 ~~~~~~~~~~~~~~~~
# | next:218'1 ? possible intended match
# | 167: orr w0, w8, w9
# | next:218'0 ~~~~~~~~~~~~~~~~
# | 168: ret
# | next:218'0 ~~~~~
# | 169: .Lfunc_end12:
# | next:218'0 ~~~~~~~~~~~~~~
# | 170: .size or_xor_or, .Lfunc_end12-or_xor_or
# | next:218'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 171: .cfi_endproc
# | next:218'0 ~~~~~~~~~~~~~~
# | 172: // -- End function
# | next:218'0 ~~~~~~~~~~~~~~~~~~~~
# | 173: .globl or_xor_and // -- Begin function or_xor_and
# | next:218'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 174: .p2align 2
# | next:218'0 ~~~~~~~~~~~~
# | 175: .type or_xor_and, at function
# | next:218'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 176: or_xor_and: // @or_xor_and
# | next:218'0 ~~~~~~~~~~~
# | 177: .cfi_startproc
# | 178: // %bb.0: // %entry
# | next:231'0 X error: no match found
# | 179: eor w8, w0, w1
# | next:231'0 ~~~~~~~~~~~~~~~~
# | next:231'1 ? possible intended match
# | 180: and w9, w0, w1
# | next:231'0 ~~~~~~~~~~~~~~~~
# | 181: orr w0, w8, w9
# | next:231'0 ~~~~~~~~~~~~~~~~
# | 182: ret
# | next:231'0 ~~~~~
# | 183: .Lfunc_end13:
# | next:231'0 ~~~~~~~~~~~~~~
# | 184: .size or_xor_and, .Lfunc_end13-or_xor_and
# | next:231'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 187: .globl or_xor_or_i64 // -- Begin function or_xor_or_i64
# | next:231'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 188: .p2align 2
# | next:231'0 ~~~~~~~~~~~~
# | 189: .type or_xor_or_i64, at function
# | next:231'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 190: or_xor_or_i64: // @or_xor_or_i64
# | next:231'0 ~~~~~~~~~~~~~~
# | 191: .cfi_startproc
# | 192: // %bb.0: // %entry
# | next:244'0 X error: no match found
# | 193: eor x8, x0, x1
# | next:244'0 ~~~~~~~~~~~~~~~~
# | 194: orr x9, x0, x1
# | next:244'0 ~~~~~~~~~~~~~~~~
# | next:244'1 ? possible intended match
# | 195: orr x0, x8, x9
# | next:244'0 ~~~~~~~~~~~~~~~~
# | 196: ret
# | next:244'0 ~~~~~
# | 197: .Lfunc_end14:
# | next:244'0 ~~~~~~~~~~~~~~
# | 198: .size or_xor_or_i64, .Lfunc_end14-or_xor_or_i64
# | next:244'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 199: .cfi_endproc
# | next:244'0 ~~~~~~~~~~~~~~
# | 200: // -- End function
# | next:244'0 ~~~~~~~~~~~~~~~~~~~~
# | 201: .globl or_xor_and_i64 // -- Begin function or_xor_and_i64
# | next:244'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 202: .p2align 2
# | next:244'0 ~~~~~~~~~~~~
# | 203: .type or_xor_and_i64, at function
# | next:244'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 204: or_xor_and_i64: // @or_xor_and_i64
# | next:244'0 ~~~~~~~~~~~~~~~
# | 205: .cfi_startproc
# | 206: // %bb.0: // %entry
# | next:257'0 X error: no match found
# | 207: eor x8, x0, x1
# | next:257'0 ~~~~~~~~~~~~~~~~
# | next:257'1 ? possible intended match
# | 208: and x9, x0, x1
# | next:257'0 ~~~~~~~~~~~~~~~~
# | 209: orr x0, x8, x9
# | next:257'0 ~~~~~~~~~~~~~~~~
# | 210: ret
# | next:257'0 ~~~~~
# | 211: .Lfunc_end15:
# | next:257'0 ~~~~~~~~~~~~~~
# | 212: .size or_xor_and_i64, .Lfunc_end15-or_xor_and_i64
# | next:257'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 217: .type or_xor_or_vector, at function
# | next:257'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 218: or_xor_or_vector: // @or_xor_or_vector
# | next:257'0 ~~~~~~~~~~~~~~~~~
# | 219: .cfi_startproc
# | 220: // %bb.0: // %entry
# | 221: eor v2.16b, v0.16b, v1.16b
# | 222: orr v0.16b, v0.16b, v1.16b
# | next:270 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 223: orr v0.16b, v2.16b, v0.16b
# | 224: ret
# | 225: .Lfunc_end16:
# | 226: .size or_xor_or_vector, .Lfunc_end16-or_xor_or_vector
# | 227: .cfi_endproc
# | 228: // -- End function
# | 229: .globl or_xor_and_vector // -- Begin function or_xor_and_vector
# | 230: .p2align 2
# | 231: .type or_xor_and_vector, at function
# | 232: or_xor_and_vector: // @or_xor_and_vector
# | 233: .cfi_startproc
# | 234: // %bb.0: // %entry
# | next:283'0 X error: no match found
# | 235: eor v2.16b, v0.16b, v1.16b
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:283'1 ? possible intended match
# | 236: and v0.16b, v0.16b, v1.16b
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 237: orr v0.16b, v2.16b, v0.16b
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 238: ret
# | next:283'0 ~~~~~
# | 239: .Lfunc_end17:
# | next:283'0 ~~~~~~~~~~~~~~
# | 240: .size or_xor_and_vector, .Lfunc_end17-or_xor_and_vector
# | next:283'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -run-pass=aarch64-prelegalizer-combiner -mtriple=aarch64-unknown-unknown /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -run-pass=aarch64-prelegalizer-combiner -mtriple=aarch64-unknown-unknown /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:16:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or:_(s32) = G_OR %x, %y
# | ^
# | <stdin>:125:22: note: scanning from here
# | %y:_(s32) = COPY $w1
# | ^
# | <stdin>:127:3: note: possible intended match here
# | %not:_(s32) = G_XOR %y, %negone
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:40:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or:_(<4 x s32>) = G_OR %x, %y
# | ^
# | <stdin>:191:28: note: scanning from here
# | %y:_(<4 x s32>) = COPY $q1
# | ^
# | <stdin>:194:3: note: possible intended match here
# | %not:_(<4 x s32>) = G_XOR %y, %splat
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:67:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR %y, %negone
# | ^
# | <stdin>:259:36: note: scanning from here
# | %negone:_(s32) = G_CONSTANT i32 -1
# | ^
# | <stdin>:261:2: note: possible intended match here
# | %not:_(s32) = G_XOR %y, %negone
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:94:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<4 x s32>) = G_XOR %y, %splat
# | ^
# | <stdin>:326:93: note: scanning from here
# | %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | ^
# | <stdin>:328:2: note: possible intended match here
# | %not:_(<4 x s32>) = G_XOR %y, %splat
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:121:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %and:_(s32) = G_AND %x, %y
# | ^
# | <stdin>:391:22: note: scanning from here
# | %y:_(s32) = COPY $w1
# | ^
# | <stdin>:395:2: note: possible intended match here
# | %and:_(s32) = G_AND %or, %y
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:146:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %and:_(<4 x s32>) = G_AND %x, %y
# | ^
# | <stdin>:457:28: note: scanning from here
# | %y:_(<4 x s32>) = COPY $q1
# | ^
# | <stdin>:462:2: note: possible intended match here
# | %and:_(<4 x s32>) = G_AND %or, %y
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:173:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR %y, %negone
# | ^
# | <stdin>:525:36: note: scanning from here
# | %negone:_(s32) = G_CONSTANT i32 -1
# | ^
# | <stdin>:526:2: note: possible intended match here
# | %not:_(s32) = G_XOR %y, %negone
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:201:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<4 x s32>) = G_XOR %y, %splat
# | ^
# | <stdin>:592:93: note: scanning from here
# | %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | ^
# | <stdin>:593:2: note: possible intended match here
# | %not:_(<4 x s32>) = G_XOR %y, %splat
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:228:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or2:_(s32) = G_OR %x, %y
# | ^
# | <stdin>:657:22: note: scanning from here
# | %y:_(s32) = COPY $w1
# | ^
# | <stdin>:659:2: note: possible intended match here
# | %or:_(s32) = G_OR %x, %y
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:252:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or2:_(<4 x s32>) = G_OR %x, %y
# | ^
# | <stdin>:722:28: note: scanning from here
# | %y:_(<4 x s32>) = COPY $q1
# | ^
# | <stdin>:724:2: note: possible intended match here
# | %or:_(<4 x s32>) = G_OR %x, %y
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:276:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or2:_(s32) = G_OR %x, %y
# | ^
# | <stdin>:787:22: note: scanning from here
# | %y:_(s32) = COPY $w1
# | ^
# | <stdin>:788:3: note: possible intended match here
# | %xor:_(s32) = G_XOR %x, %y
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir:300:16: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: %or2:_(<4 x s32>) = G_OR %x, %y
# | ^
# | <stdin>:852:28: note: scanning from here
# | %y:_(<4 x s32>) = COPY $q1
# | ^
# | <stdin>:853:3: note: possible intended match here
# | %xor:_(<4 x s32>) = G_XOR %x, %y
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 120: body: |
# | 121: bb.0:
# | 122: liveins: $w0, $w1
# | 123:
# | 124: %x:_(s32) = COPY $w0
# | 125: %y:_(s32) = COPY $w1
# | next:16'0 X error: no match found
# | 126: %negone:_(s32) = G_CONSTANT i32 -1
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 127: %not:_(s32) = G_XOR %y, %negone
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:16'1 ? possible intended match
# | 128: %and:_(s32) = G_AND %x, %not
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 129: %or:_(s32) = G_OR %and, %y
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 130: $w0 = COPY %or(s32)
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~
# | 131: RET_ReallyLR implicit $w0
# | next:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 132: ...
# | next:16'0 ~~~~
# | .
# | .
# | .
# | 186: body: |
# | 187: bb.0:
# | 188: liveins: $q0, $q1
# | 189:
# | 190: %x:_(<4 x s32>) = COPY $q0
# | 191: %y:_(<4 x s32>) = COPY $q1
# | next:40'0 X error: no match found
# | 192: %negone:_(s32) = G_CONSTANT i32 -1
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 193: %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 194: %not:_(<4 x s32>) = G_XOR %y, %splat
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:40'1 ? possible intended match
# | 195: %and:_(<4 x s32>) = G_AND %x, %not
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 196: %or:_(<4 x s32>) = G_OR %and, %y
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 197: $q0 = COPY %or(<4 x s32>)
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 198: RET_ReallyLR implicit $q0
# | next:40'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 199: ...
# | next:40'0 ~~~~
# | .
# | .
# | .
# | 254: bb.0:
# | 255: liveins: $w0, $w1
# | 256:
# | 257: %x:_(s32) = COPY $w0
# | 258: %y:_(s32) = COPY $w1
# | 259: %negone:_(s32) = G_CONSTANT i32 -1
# | next:67'0 X error: no match found
# | 260: %and:_(s32) = G_AND %x, %y
# | next:67'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 261: %not:_(s32) = G_XOR %y, %negone
# | next:67'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:67'1 ? possible intended match
# | 262: %or:_(s32) = G_OR %and, %not
# | next:67'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 263: $w0 = COPY %or(s32)
# | next:67'0 ~~~~~~~~~~~~~~~~~~~~~
# | 264: RET_ReallyLR implicit $w0
# | next:67'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 265: ...
# | next:67'0 ~~~~
# | 266: ---
# | next:67'0 ~~~~
# | .
# | .
# | .
# | 321: liveins: $q0, $q1
# | 322:
# | 323: %x:_(<4 x s32>) = COPY $q0
# | 324: %y:_(<4 x s32>) = COPY $q1
# | 325: %negone:_(s32) = G_CONSTANT i32 -1
# | 326: %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | next:94'0 X error: no match found
# | 327: %and:_(<4 x s32>) = G_AND %x, %y
# | next:94'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 328: %not:_(<4 x s32>) = G_XOR %y, %splat
# | next:94'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:94'1 ? possible intended match
# | 329: %or:_(<4 x s32>) = G_OR %and, %not
# | next:94'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 330: $q0 = COPY %or(<4 x s32>)
# | next:94'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 331: RET_ReallyLR implicit $q0
# | next:94'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 332: ...
# | next:94'0 ~~~~
# | 333: ---
# | next:94'0 ~~~~
# | .
# | .
# | .
# | 386: body: |
# | 387: bb.0:
# | 388: liveins: $w0, $w1
# | 389:
# | 390: %x:_(s32) = COPY $w0
# | 391: %y:_(s32) = COPY $w1
# | next:121'0 X error: no match found
# | 392: %negone:_(s32) = G_CONSTANT i32 -1
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 393: %not:_(s32) = G_XOR %y, %negone
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 394: %or:_(s32) = G_OR %x, %not
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 395: %and:_(s32) = G_AND %or, %y
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:121'1 ? possible intended match
# | 396: $w0 = COPY %and(s32)
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 397: RET_ReallyLR implicit $w0
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 398: ...
# | next:121'0 ~~~~
# | 399: ---
# | next:121'0 ~~~~
# | 400: name: and_xor_or_to_and_vector
# | next:121'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 452: body: |
# | 453: bb.0:
# | 454: liveins: $q0, $q1
# | 455:
# | 456: %x:_(<4 x s32>) = COPY $q0
# | 457: %y:_(<4 x s32>) = COPY $q1
# | next:146'0 X error: no match found
# | 458: %negone:_(s32) = G_CONSTANT i32 -1
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 459: %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 460: %not:_(<4 x s32>) = G_XOR %y, %splat
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 461: %or:_(<4 x s32>) = G_OR %x, %not
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 462: %and:_(<4 x s32>) = G_AND %or, %y
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:146'1 ? possible intended match
# | 463: $q0 = COPY %and(<4 x s32>)
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 464: RET_ReallyLR implicit $q0
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 465: ...
# | next:146'0 ~~~~
# | 466: ---
# | next:146'0 ~~~~
# | 467: name: and_xor_or_to_xor_and
# | next:146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 520: bb.0:
# | 521: liveins: $w0, $w1
# | 522:
# | 523: %x:_(s32) = COPY $w0
# | 524: %y:_(s32) = COPY $w1
# | 525: %negone:_(s32) = G_CONSTANT i32 -1
# | next:173'0 X error: no match found
# | 526: %not:_(s32) = G_XOR %y, %negone
# | next:173'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:173'1 ? possible intended match
# | 527: %or:_(s32) = G_OR %x, %y
# | next:173'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 528: %and:_(s32) = G_AND %or, %not
# | next:173'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 529: $w0 = COPY %and(s32)
# | next:173'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 530: RET_ReallyLR implicit $w0
# | next:173'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 531: ...
# | next:173'0 ~~~~
# | .
# | .
# | .
# | 587: liveins: $q0, $q1
# | 588:
# | 589: %x:_(<4 x s32>) = COPY $q0
# | 590: %y:_(<4 x s32>) = COPY $q1
# | 591: %negone:_(s32) = G_CONSTANT i32 -1
# | 592: %splat:_(<4 x s32>) = G_BUILD_VECTOR %negone(s32), %negone(s32), %negone(s32), %negone(s32)
# | next:201'0 X error: no match found
# | 593: %not:_(<4 x s32>) = G_XOR %y, %splat
# | next:201'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:201'1 ? possible intended match
# | 594: %or:_(<4 x s32>) = G_OR %x, %y
# | next:201'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 595: %and:_(<4 x s32>) = G_AND %or, %not
# | next:201'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 596: $q0 = COPY %and(<4 x s32>)
# | next:201'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 597: RET_ReallyLR implicit $q0
# | next:201'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 598: ...
# | next:201'0 ~~~~
# | .
# | .
# | .
# | 652: body: |
# | 653: bb.0:
# | 654: liveins: $w0, $w1
# | 655:
# | 656: %x:_(s32) = COPY $w0
# | 657: %y:_(s32) = COPY $w1
# | next:228'0 X error: no match found
# | 658: %xor:_(s32) = G_XOR %x, %y
# | next:228'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 659: %or:_(s32) = G_OR %x, %y
# | next:228'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:228'1 ? possible intended match
# | 660: %or2:_(s32) = G_OR %xor, %or
# | next:228'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 661: $w0 = COPY %or2(s32)
# | next:228'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 662: RET_ReallyLR implicit $w0
# | next:228'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 663: ...
# | next:228'0 ~~~~
# | 664: ---
# | next:228'0 ~~~~
# | .
# | .
# | .
# | 717: body: |
# | 718: bb.0:
# | 719: liveins: $q0, $q1
# | 720:
# | 721: %x:_(<4 x s32>) = COPY $q0
# | 722: %y:_(<4 x s32>) = COPY $q1
# | next:252'0 X error: no match found
# | 723: %xor:_(<4 x s32>) = G_XOR %x, %y
# | next:252'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 724: %or:_(<4 x s32>) = G_OR %x, %y
# | next:252'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:252'1 ? possible intended match
# | 725: %or2:_(<4 x s32>) = G_OR %xor, %or
# | next:252'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 726: $q0 = COPY %or2(<4 x s32>)
# | next:252'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 727: RET_ReallyLR implicit $q0
# | next:252'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 728: ...
# | next:252'0 ~~~~
# | 729: ---
# | next:252'0 ~~~~
# | .
# | .
# | .
# | 782: body: |
# | 783: bb.0:
# | 784: liveins: $w0, $w1
# | 785:
# | 786: %x:_(s32) = COPY $w0
# | 787: %y:_(s32) = COPY $w1
# | next:276'0 X error: no match found
# | 788: %xor:_(s32) = G_XOR %x, %y
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:276'1 ? possible intended match
# | 789: %and:_(s32) = G_AND %x, %y
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 790: %or2:_(s32) = G_OR %xor, %and
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 791: $w0 = COPY %or2(s32)
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 792: RET_ReallyLR implicit $w0
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 793: ...
# | next:276'0 ~~~~
# | .
# | .
# | .
# | 847: body: |
# | 848: bb.0:
# | 849: liveins: $q0, $q1
# | 850:
# | 851: %x:_(<4 x s32>) = COPY $q0
# | 852: %y:_(<4 x s32>) = COPY $q1
# | next:300'0 X error: no match found
# | 853: %xor:_(<4 x s32>) = G_XOR %x, %y
# | next:300'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:300'1 ? possible intended match
# | 854: %and:_(<4 x s32>) = G_AND %x, %y
# | next:300'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 855: %or2:_(<4 x s32>) = G_OR %xor, %and
# | next:300'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 856: $q0 = COPY %or2(<4 x s32>)
# | next:300'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 857: RET_ReallyLR implicit $q0
# | next:300'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 858: ...
# | next:300'0 ~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/204618
More information about the llvm-commits
mailing list