[llvm] [InstCombine] Canonicalize GEP source element types (PR #180745)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 10 06:55:49 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 169484 tests passed
* 3046 tests skipped
* 7 tests failed
## Failed Tests
(click on a test name to see its output)
### Clang
<details>
<summary>Clang.CodeGen/allow-ubsan-check.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-pc-linux-gnu -emit-llvm -O1 -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/allow-ubsan-check.c -fsanitize=signed-integer-overflow,integer-divide-by-zero,null,local-bounds -mllvm -ubsan-guard-checks | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/allow-ubsan-check.c
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-pc-linux-gnu -emit-llvm -O1 -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/allow-ubsan-check.c -fsanitize=signed-integer-overflow,integer-divide-by-zero,null,local-bounds -mllvm -ubsan-guard-checks
# 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/clang/test/CodeGen/allow-ubsan-check.c
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/allow-ubsan-check.c:207:16: error: CHECK-NEXT: expected string not found in input
# | // CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds double, ptr [[VLA]], i64 [[IDXPROM]]
# | ^
# | <stdin>:103:3: note: scanning from here
# | 4: ; preds = %entry
# | ^
# | <stdin>:103:3: note: with "VLA" equal to "%vla"
# | 4: ; preds = %entry
# | ^
# | <stdin>:103:3: note: with "IDXPROM" equal to "%idxprom"
# | 4: ; preds = %entry
# | ^
# | <stdin>:104:8: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %vla, i64 %idxprom
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/allow-ubsan-check.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 98: %1 = icmp ule i64 %0, %idxprom
# | 99: %2 = call i1 @llvm.allow.ubsan.check(i8 71), !nosanitize !6
# | 100: %3 = and i1 %1, %2, !nosanitize !6
# | 101: br i1 %3, label %trap, label %4
# | 102:
# | 103: 4: ; preds = %entry
# | next:207'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:207'1 with "VLA" equal to "%vla"
# | next:207'2 with "IDXPROM" equal to "%idxprom"
# | 104: %arrayidx = getelementptr inbounds [8 x i8], ptr %vla, i64 %idxprom
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:207'3 ? possible intended match
# | 105: %5 = load double, ptr %arrayidx, align 8, !tbaa !9
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 106: ret double %5
# | next:207'0 ~~~~~~~~~~~~~~~
# | 107:
# | next:207'0 ~
# | 108: trap: ; preds = %entry
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 109: call void @__ubsan_handle_local_out_of_bounds_abort() #6, !nosanitize !6
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Clang.CodeGen/attr-counted-by-for-pointers.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-unknown-linux-gnu -O2 -DWITH_ATTRS -Wall -fsanitize=array-bounds,object-size,local-bounds -fstrict-flex-arrays=3 -fexperimental-late-parse-attributes -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SANITIZE-WITH-ATTR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-unknown-linux-gnu -O2 -DWITH_ATTRS -Wall -fsanitize=array-bounds,object-size,local-bounds -fstrict-flex-arrays=3 -fexperimental-late-parse-attributes -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SANITIZE-WITH-ATTR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c:47:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 [[IDXPROM]]
# | ^
# | <stdin>:38:35: note: scanning from here
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:38:35: note: with "TMP4" equal to "%4"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:38:35: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:39:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c:102:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 [[IDXPROM]]
# | ^
# | <stdin>:65:35: note: scanning from here
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:65:35: note: with "TMP4" equal to "%4"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:65:35: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:66:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c:157:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 [[IDXPROM]]
# | ^
# | <stdin>:89:35: note: scanning from here
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:89:35: note: with "TMP4" equal to "%4"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:89:35: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:90:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c:574:26: error: undefined variable: _ZTS3FOOPTR_TBAA14
# | // SANITIZE-WITH-ATTR: [[_ZTS3FOOPTR_TBAA14]] = !{[[META15:![0-9]+]], [[META15]], i64 0}
# | ^
# | <stdin>:270:3: note: possible intended match here
# | !14 = !{!15, !15, i64 0}
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by-for-pointers.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 33: unreachable, !nosanitize !6
# | 34:
# | 35: cont10: ; preds = %entry
# | 36: %buf = getelementptr inbounds nuw i8, ptr %p, i64 8
# | 37: %4 = load ptr, ptr %buf, align 8, !tbaa !8
# | 38: %idxprom = sext i32 %index to i64
# | next:47'0 X error: no match found
# | next:47'1 with "TMP4" equal to "%4"
# | next:47'2 with "IDXPROM" equal to "%idxprom"
# | 39: %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | next:47'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:47'3 ? possible intended match
# | 40: store ptr %value, ptr %arrayidx, align 8, !tbaa !14
# | next:47'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 41: ret void
# | next:47'0 ~~~~~~~~~~
# | 42: }
# | next:47'0 ~~
# | 43:
# | next:47'0 ~
# | 44: ; Function Attrs: noreturn nounwind uwtable
# | next:47'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 60: unreachable, !nosanitize !6
# | 61:
# | 62: cont10: ; preds = %entry
# | 63: %buf = getelementptr inbounds nuw i8, ptr %p, i64 8
# | 64: %4 = load ptr, ptr %buf, align 8, !tbaa !8
# | 65: %idxprom = sext i32 %index to i64
# | next:102'0 X error: no match found
# | next:102'1 with "TMP4" equal to "%4"
# | next:102'2 with "IDXPROM" equal to "%idxprom"
# | 66: %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | next:102'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:102'3 ? possible intended match
# | 67: store ptr %value, ptr %arrayidx, align 8, !tbaa !14
# | next:102'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 68: ret void
# | next:102'0 ~~~~~~~~~~
# | 69: }
# | next:102'0 ~~
# | 70:
# | next:102'0 ~
# | 71: ; Function Attrs: nounwind
# | next:102'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 84: unreachable, !nosanitize !6
# | 85:
# | 86: cont10: ; preds = %entry
# | 87: %buf = getelementptr inbounds nuw i8, ptr %p, i64 8
# | 88: %4 = load ptr, ptr %buf, align 8, !tbaa !8
# | 89: %idxprom = sext i32 %index to i64
# | next:157'0 X error: no match found
# | next:157'1 with "TMP4" equal to "%4"
# | next:157'2 with "IDXPROM" equal to "%idxprom"
# | 90: %arrayidx = getelementptr inbounds [8 x i8], ptr %4, i64 %idxprom
# | next:157'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:157'3 ? possible intended match
# | 91: store ptr %value, ptr %arrayidx, align 8, !tbaa !14
# | next:157'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 92: ret void
# | next:157'0 ~~~~~~~~~~
# | 93: }
# | next:157'0 ~~
# | 94:
# | next:157'0 ~
# | 95: ; Function Attrs: nounwind
# | next:157'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 264: !8 = !{!9, !11, i64 8}
# | 265: !9 = !{!"annotated_ptr", !10, i64 0, !11, i64 8, !3, i64 16}
# | 266: !10 = !{!"long", !4, i64 0}
# | 267: !11 = !{!"p2 _ZTS3foo", !12, i64 0}
# | 268: !12 = !{!"any p2 pointer", !13, i64 0}
# | 269: !13 = !{!"any pointer", !4, i64 0}
# | check:574'0 X error: match failed for invalid pattern
# | check:574'1 undefined variable: _ZTS3FOOPTR_TBAA14
# | 270: !14 = !{!15, !15, i64 0}
# | check:574'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:574'2 ? possible intended match
# | 271: !15 = !{!"p1 _ZTS3foo", !13, i64 0}
# | check:574'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Clang.CodeGen/attr-counted-by.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-unknown-linux-gnu -DCOUNTED_BY -O2 -Wall -fsanitize=array-bounds,object-size,local-bounds -fstrict-flex-arrays=3 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SANITIZE-WITH-ATTR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -triple x86_64-unknown-linux-gnu -DCOUNTED_BY -O2 -Wall -fsanitize=array-bounds,object-size,local-bounds -fstrict-flex-arrays=3 -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:41: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:48: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:55: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:58: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:65: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:61: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:51: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2506:44: warning: left operand of comma operator has no effect [-Wunused-value]
# | 2506 | return __builtin_dynamic_object_size((1, 2, (4, 5, (7, 8, 9, (10, ptr->array)))), 1);
# | | ^
# | 8 warnings generated.
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --check-prefix=SANITIZE-WITH-ATTR /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:77:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARRAY]], i64 [[IDXPROM]]
# | ^
# | <stdin>:100:35: note: scanning from here
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:100:35: note: with "ARRAY" equal to "%array"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:100:35: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:101:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %array, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:127:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i32, ptr [[ARRAY]], i64 [[INDEX]]
# | ^
# | <stdin>:128:56: note: scanning from here
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:128:56: note: with "ARRAY" equal to "%array"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:128:56: note: with "INDEX" equal to "%index"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:129:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:251:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i32, ptr [[ARRAY]], i64 [[INDEX]]
# | ^
# | <stdin>:175:56: note: scanning from here
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:175:56: note: with "ARRAY" equal to "%array"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:175:56: note: with "INDEX" equal to "%index"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:176:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:355:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX10:%.*]] = getelementptr inbounds nuw i32, ptr [[ARRAY]], i64 [[IDXPROM]]
# | ^
# | <stdin>:218:27: note: scanning from here
# | %2 = and i32 %result, 252
# | ^
# | <stdin>:218:27: note: with "ARRAY" equal to "%array"
# | %2 = and i32 %result, 252
# | ^
# | <stdin>:218:27: note: with "IDXPROM" equal to "%idxprom"
# | %2 = and i32 %result, 252
# | ^
# | <stdin>:219:7: note: possible intended match here
# | %arrayidx10 = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:619:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP1]], i64 [[IDXPROM]]
# | ^
# | <stdin>:340:52: note: scanning from here
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:340:52: note: with "TMP1" equal to "%1"
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:340:52: note: with "IDXPROM" equal to "%idxprom"
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:341:12: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %1, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:691:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP1]], i64 [[IDXPROM]]
# | ^
# | <stdin>:366:52: note: scanning from here
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:366:52: note: with "TMP1" equal to "%1"
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:366:52: note: with "IDXPROM" equal to "%idxprom"
# | %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | ^
# | <stdin>:367:12: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %1, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1101:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARRAY]], i64 [[IDXPROM]]
# | ^
# | <stdin>:524:35: note: scanning from here
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:524:35: note: with "ARRAY" equal to "%array"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:524:35: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %index to i64
# | ^
# | <stdin>:525:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %array, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1210:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i32, ptr [[BAZ]], i64 [[TMP0]]
# | ^
# | <stdin>:559:6: note: scanning from here
# | cont: ; preds = %entry
# | ^
# | <stdin>:559:6: note: with "BAZ" equal to "%baz"
# | cont: ; preds = %entry
# | ^
# | <stdin>:559:6: note: with "TMP0" equal to "%0"
# | cont: ; preds = %entry
# | ^
# | <stdin>:572:83: note: possible intended match here
# | tail call void @__ubsan_handle_type_mismatch_v1_abort(ptr nonnull @25, i64 ptrtoint (ptr getelementptr inbounds nuw (i8, ptr @test12_foo, i64 4) to i64)) #8, !nosanitize !6
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1316:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw ptr, ptr [[REVMAP]], i64 [[INDEX]]
# | ^
# | <stdin>:599:57: note: scanning from here
# | %revmap = getelementptr inbounds nuw i8, ptr %0, i64 16
# | ^
# | <stdin>:599:57: note: with "REVMAP" equal to "%revmap"
# | %revmap = getelementptr inbounds nuw i8, ptr %0, i64 16
# | ^
# | <stdin>:599:57: note: with "INDEX" equal to "%index"
# | %revmap = getelementptr inbounds nuw i8, ptr %0, i64 16
# | ^
# | <stdin>:600:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds nuw [8 x i8], ptr %revmap, i64 %index
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1372:87: error: undefined variable: INT_TBAA2
# | // SANITIZE-WITH-ATTR-NEXT: store i32 1, ptr [[DOTCOMPOUNDLITERAL]], align 4, !tbaa [[INT_TBAA2]]
# | ^
# | <stdin>:608:56: note: with "DOTCOMPOUNDLITERAL" equal to "%.compoundliteral"
# | %.compoundliteral = alloca %struct.test14_foo, align 4
# | ^
# | <stdin>:611:2: note: possible intended match here
# | store i32 2, ptr %y, align 4, !tbaa !2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1647:90: error: undefined variable: INT_TBAA2
# | // SANITIZE-WITH-ATTR-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX2]], align 4, !tbaa [[INT_TBAA2]]
# | ^
# | <stdin>:701:62: note: with "ARRAYIDX2" equal to "%arrayidx2"
# | %arrayidx2 = getelementptr inbounds nuw i8, ptr %var, i64 84
# | ^
# | <stdin>:702:2: note: possible intended match here
# | %1 = load i32, ptr %arrayidx2, align 4, !tbaa !2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1688:89: error: undefined variable: INT_TBAA2
# | // SANITIZE-WITH-ATTR-NEXT: [[TMP2:%.*]] = load i32, ptr [[ARRAYIDX]], align 4, !tbaa [[INT_TBAA2]]
# | ^
# | <stdin>:719:59: note: with "ARRAYIDX" equal to "%arrayidx"
# | %arrayidx = getelementptr inbounds nuw i8, ptr %0, i64 44
# | ^
# | <stdin>:720:5: note: possible intended match here
# | %2 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1742:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARR]], i64 [[IDXPROM]]
# | ^
# | <stdin>:741:31: note: scanning from here
# | %idxprom = sext i32 %c to i64
# | ^
# | <stdin>:741:31: note: with "ARR" equal to "%arr"
# | %idxprom = sext i32 %c to i64
# | ^
# | <stdin>:741:31: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %c to i64
# | ^
# | <stdin>:742:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %arr, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1813:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[ENTRIES]], i64 [[IDXPROM]]
# | ^
# | <stdin>:762:31: note: scanning from here
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:762:31: note: with "ENTRIES" equal to "%entries"
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:762:31: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:763:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %entries, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1881:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARR]], i64 [[IDXPROM]]
# | ^
# | <stdin>:790:31: note: scanning from here
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:790:31: note: with "ARR" equal to "%arr"
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:790:31: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %i to i64
# | ^
# | <stdin>:791:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds [4 x i8], ptr %arr, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:1942:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw ptr, ptr [[ANN]], i64 [[TMP0]]
# | ^
# | <stdin>:807:7: note: scanning from here
# | cont3: ; preds = %entry
# | ^
# | <stdin>:807:7: note: with "ANN" equal to "%ann"
# | cont3: ; preds = %entry
# | ^
# | <stdin>:807:7: note: with "TMP0" equal to "%0"
# | cont3: ; preds = %entry
# | ^
# | <stdin>:810:13: note: possible intended match here
# | %counted_by.gep = getelementptr inbounds nuw i8, ptr %2, i64 8
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2120:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX7:%.*]] = getelementptr inbounds i64, ptr [[ARRAY]], i64 [[IDXPROM4]]
# | ^
# | <stdin>:871:35: note: scanning from here
# | %idxprom4 = sext i32 %idx1 to i64
# | ^
# | <stdin>:871:35: note: with "ARRAY" equal to "%array"
# | %idxprom4 = sext i32 %idx1 to i64
# | ^
# | <stdin>:871:35: note: with "IDXPROM4" equal to "%idxprom4"
# | %idxprom4 = sext i32 %idx1 to i64
# | ^
# | <stdin>:872:6: note: possible intended match here
# | %arrayidx7 = getelementptr inbounds [8 x i8], ptr %array, i64 %idxprom4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2380:29: error: SANITIZE-WITH-ATTR-NEXT: expected string not found in input
# | // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i32, ptr [[ARRAY]], i64 [[INDEX]]
# | ^
# | <stdin>:968:56: note: scanning from here
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:968:56: note: with "ARRAY" equal to "%array"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:968:56: note: with "INDEX" equal to "%index"
# | %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | ^
# | <stdin>:969:5: note: possible intended match here
# | %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2513:76: error: undefined variable: INT_TBAA2
# | // SANITIZE-WITH-ATTR-NEXT: store i32 -42, ptr [[COUNT]], align 8, !tbaa [[INT_TBAA2]]
# | ^
# | <stdin>:1001:57: note: with "COUNT" equal to "%count"
# | %count = getelementptr inbounds nuw i8, ptr %ptr, i64 8
# | ^
# | <stdin>:1002:2: note: possible intended match here
# | store i32 -42, ptr %count, align 8, !tbaa !2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2546:76: error: undefined variable: INT_TBAA2
# | // SANITIZE-WITH-ATTR-NEXT: store i32 -42, ptr [[COUNT]], align 8, !tbaa [[INT_TBAA2]]
# | ^
# | <stdin>:1009:57: note: with "COUNT" equal to "%count"
# | %count = getelementptr inbounds nuw i8, ptr %ptr, i64 8
# | ^
# | <stdin>:1010:2: note: possible intended match here
# | store i32 -42, ptr %count, align 8, !tbaa !2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c:2607:113: error: undefined variable: PROF8
# | // SANITIZE-WITH-ATTR-NEXT: br i1 [[DOTNOT]], label %[[HANDLER_OUT_OF_BOUNDS:.*]], label %[[CONT3:.*]], !prof [[PROF8]], !nosanitize [[META6]]
# | ^
# | <stdin>:1020:42: note: with "DOTNOT" equal to "%.not"
# | %.not = icmp eq i16 %.counted_by.load, 0
# | ^
# | <stdin>:1020:42: note: with "META6" equal to "!6"
# | %.not = icmp eq i16 %.counted_by.load, 0
# | ^
# | <stdin>:1021:27: note: possible intended match here
# | br i1 %.not, label %handler.out_of_bounds, label %cont3, !prof !8, !nosanitize !6
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/attr-counted-by.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 95: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @1, i64 %3) #8, !nosanitize !6
# | 96: unreachable, !nosanitize !6
# | 97:
# | 98: cont3: ; preds = %entry
# | 99: %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | 100: %idxprom = sext i32 %index to i64
# | next:77'0 X error: no match found
# | next:77'1 with "ARRAY" equal to "%array"
# | next:77'2 with "IDXPROM" equal to "%idxprom"
# | 101: %arrayidx = getelementptr inbounds [4 x i8], ptr %array, i64 %idxprom
# | next:77'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:77'3 ? possible intended match
# | 102: store i32 %val, ptr %arrayidx, align 4, !tbaa !2
# | next:77'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 103: ret void
# | next:77'0 ~~~~~~~~~~
# | 104: }
# | next:77'0 ~~
# | 105:
# | next:77'0 ~
# | 106: ; Function Attrs: noreturn nounwind uwtable
# | next:77'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 123: handler.out_of_bounds: ; preds = %entry
# | 124: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @3, i64 %index) #8, !nosanitize !6
# | 125: unreachable, !nosanitize !6
# | 126:
# | 127: cont6: ; preds = %entry
# | 128: %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | next:127'0 X error: no match found
# | next:127'1 with "ARRAY" equal to "%array"
# | next:127'2 with "INDEX" equal to "%index"
# | 129: %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | next:127'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:127'3 ? possible intended match
# | 130: %conv = shl i32 %counted_by.load, 2
# | next:127'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 131: store i32 %conv, ptr %arrayidx, align 4, !tbaa !2
# | next:127'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 132: ret void
# | next:127'0 ~~~~~~~~~~
# | 133: }
# | next:127'0 ~~
# | 134:
# | next:127'0 ~
# | .
# | .
# | .
# | 170: handler.out_of_bounds: ; preds = %entry
# | 171: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @4, i64 %index) #8, !nosanitize !6
# | 172: unreachable, !nosanitize !6
# | 173:
# | 174: cont3: ; preds = %entry
# | 175: %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | next:251'0 X error: no match found
# | next:251'1 with "ARRAY" equal to "%array"
# | next:251'2 with "INDEX" equal to "%index"
# | 176: %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | next:251'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:251'3 ? possible intended match
# | 177: store i32 -1, ptr %arrayidx, align 4, !tbaa !2
# | next:251'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 178: ret void
# | next:251'0 ~~~~~~~~~~
# | 179: }
# | next:251'0 ~~
# | 180:
# | next:251'0 ~
# | 181: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | next:251'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 213: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @6, i64 %idxprom) #8, !nosanitize !6
# | 214: unreachable, !nosanitize !6
# | 215:
# | 216: cont12: ; preds = %cont1
# | 217: %result = add i32 %flexible_array_member_size, 244
# | 218: %2 = and i32 %result, 252
# | next:355'0 X error: no match found
# | next:355'1 with "ARRAY" equal to "%array"
# | next:355'2 with "IDXPROM" equal to "%idxprom"
# | 219: %arrayidx10 = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %idxprom
# | next:355'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:355'3 ? possible intended match
# | 220: store i32 %2, ptr %arrayidx10, align 4, !tbaa !2
# | next:355'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 221: %.not79 = icmp eq i32 %.counted_by.load, 3
# | next:355'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 222: br i1 %.not79, label %handler.out_of_bounds18, label %cont19, !prof !8, !nosanitize !6
# | next:355'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 223:
# | next:355'0 ~
# | 224: handler.out_of_bounds18: ; preds = %cont12
# | next:355'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 335: handler.out_of_bounds: ; preds = %entry
# | 336: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @12, i64 %idxprom) #8, !nosanitize !6
# | 337: unreachable, !nosanitize !6
# | 338:
# | 339: cont3: ; preds = %entry
# | 340: %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | next:619'0 X error: no match found
# | next:619'1 with "TMP1" equal to "%1"
# | next:619'2 with "IDXPROM" equal to "%idxprom"
# | 341: %arrayidx = getelementptr inbounds [4 x i8], ptr %1, i64 %idxprom
# | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:619'3 ? possible intended match
# | 342: store i32 -1, ptr %arrayidx, align 4, !tbaa !2
# | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 343: ret void
# | next:619'0 ~~~~~~~~~~
# | 344: }
# | next:619'0 ~~
# | 345:
# | next:619'0 ~
# | 346: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 361: handler.out_of_bounds: ; preds = %entry
# | 362: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @13, i64 %idxprom) #8, !nosanitize !6
# | 363: unreachable, !nosanitize !6
# | 364:
# | 365: cont6: ; preds = %entry
# | 366: %1 = getelementptr inbounds nuw i8, ptr %p, i64 16
# | next:691'0 X error: no match found
# | next:691'1 with "TMP1" equal to "%1"
# | next:691'2 with "IDXPROM" equal to "%idxprom"
# | 367: %arrayidx = getelementptr inbounds [4 x i8], ptr %1, i64 %idxprom
# | next:691'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:691'3 ? possible intended match
# | 368: %flexible_array_member_size = shl nuw i64 %counted_by.load, 2
# | next:691'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 369: %2 = tail call i64 @llvm.smax.i64(i64 %flexible_array_member_size, i64 0)
# | next:691'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 370: %conv = trunc i64 %2 to i32
# | next:691'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 371: store i32 %conv, ptr %arrayidx, align 4, !tbaa !2
# | next:691'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 372: ret void
# | next:691'0 ~~~~~~~~~~
# | .
# | .
# | .
# | 519: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @20, i64 %3) #8, !nosanitize !6
# | 520: unreachable, !nosanitize !6
# | 521:
# | 522: cont6: ; preds = %entry
# | 523: %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | 524: %idxprom = sext i32 %index to i64
# | next:1101'0 X error: no match found
# | next:1101'1 with "ARRAY" equal to "%array"
# | next:1101'2 with "IDXPROM" equal to "%idxprom"
# | 525: %arrayidx = getelementptr inbounds [4 x i8], ptr %array, i64 %idxprom
# | next:1101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1101'3 ? possible intended match
# | 526: %flexible_array_member_size = shl i32 %counted_by.load, 2
# | next:1101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 527: %result = add i32 %flexible_array_member_size, 8
# | next:1101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 528: store i32 %result, ptr %arrayidx, align 4, !tbaa !2
# | next:1101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 529: ret void
# | next:1101'0 ~~~~~~~~~~
# | 530: }
# | next:1101'0 ~~
# | .
# | .
# | .
# | 554:
# | 555: handler.out_of_bounds: ; preds = %entry
# | 556: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @22, i64 %0) #8, !nosanitize !6
# | 557: unreachable, !nosanitize !6
# | 558:
# | 559: cont: ; preds = %entry
# | next:1210'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:1210'1 with "BAZ" equal to "%baz"
# | next:1210'2 with "TMP0" equal to "%0"
# | 560: %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %baz, i64 %0
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 561: %2 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 562: store i32 %2, ptr @test12_b, align 4, !tbaa !2
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 563: %.counted_by.load = load i32, ptr @test12_foo, align 4
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 564: %3 = icmp sgt i32 %.counted_by.load, 0, !nosanitize !6
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 567: handler.out_of_bounds4: ; preds = %cont
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 568: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @24, i64 0) #8, !nosanitize !6
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 569: unreachable, !nosanitize !6
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 570:
# | next:1210'0 ~
# | 571: handler.type_mismatch6: ; preds = %cont
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 572: tail call void @__ubsan_handle_type_mismatch_v1_abort(ptr nonnull @25, i64 ptrtoint (ptr getelementptr inbounds nuw (i8, ptr @test12_foo, i64 4) to i64)) #8, !nosanitize !6
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1210'3 ? possible intended match
# | 573: unreachable, !nosanitize !6
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 574: }
# | next:1210'0 ~~
# | 575:
# | next:1210'0 ~
# | 576: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 577: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4
# | next:1210'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 594: handler.out_of_bounds: ; preds = %entry
# | 595: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @28, i64 %index) #8, !nosanitize !6
# | 596: unreachable, !nosanitize !6
# | 597:
# | 598: cont5: ; preds = %entry
# | 599: %revmap = getelementptr inbounds nuw i8, ptr %0, i64 16
# | next:1316'0 X error: no match found
# | next:1316'1 with "REVMAP" equal to "%revmap"
# | next:1316'2 with "INDEX" equal to "%index"
# | 600: %arrayidx = getelementptr inbounds nuw [8 x i8], ptr %revmap, i64 %index
# | next:1316'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1316'3 ? possible intended match
# | 601: store ptr null, ptr %arrayidx, align 8, !tbaa !15
# | next:1316'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 602: ret i32 0
# | next:1316'0 ~~~~~~~~~~~
# | 603: }
# | next:1316'0 ~~
# | 604:
# | next:1316'0 ~
# | 605: ; Function Attrs: noreturn nounwind
# | next:1316'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 606: define dso_local noundef i32 @test14(i32 noundef %idx) local_unnamed_addr #3 {
# | next:1316'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 607: entry:
# | 608: %.compoundliteral = alloca %struct.test14_foo, align 4
# | next:1372'0 X error: match failed for invalid pattern
# | next:1372'1 undefined variable: INT_TBAA2
# | next:1372'2 with "DOTCOMPOUNDLITERAL" equal to "%.compoundliteral"
# | 609: store i32 1, ptr %.compoundliteral, align 4, !tbaa !2
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 610: %y = getelementptr inbounds nuw i8, ptr %.compoundliteral, i64 4
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 611: store i32 2, ptr %y, align 4, !tbaa !2
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1372'3 ? possible intended match
# | 612: %0 = icmp eq i32 %idx, 0
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 613: br i1 %0, label %handler.type_mismatch2, label %handler.out_of_bounds, !prof !7, !nosanitize !6
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 614:
# | next:1372'0 ~
# | 615: handler.out_of_bounds: ; preds = %entry
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 616: %1 = zext i32 %idx to i64, !nosanitize !6
# | next:1372'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 696: handler.out_of_bounds: ; preds = %entry
# | 697: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @35, i64 10) #8, !nosanitize !6
# | 698: unreachable, !nosanitize !6
# | 699:
# | 700: cont4: ; preds = %entry
# | 701: %arrayidx2 = getelementptr inbounds nuw i8, ptr %var, i64 84
# | next:1647'0 X error: match failed for invalid pattern
# | next:1647'1 undefined variable: INT_TBAA2
# | next:1647'2 with "ARRAYIDX2" equal to "%arrayidx2"
# | 702: %1 = load i32, ptr %arrayidx2, align 4, !tbaa !2
# | next:1647'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1647'3 ? possible intended match
# | 703: ret i32 %1
# | next:1647'0 ~~~~~~~~~~~~
# | 704: }
# | next:1647'0 ~~
# | 705:
# | next:1647'0 ~
# | 706: ; Function Attrs: nounwind
# | next:1647'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 707: define dso_local i32 @test25(i32 noundef %c, ptr noundef %var) local_unnamed_addr #0 {
# | next:1647'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 714: handler.out_of_bounds: ; preds = %entry
# | 715: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @36, i64 10) #8, !nosanitize !6
# | 716: unreachable, !nosanitize !6
# | 717:
# | 718: cont5: ; preds = %entry
# | 719: %arrayidx = getelementptr inbounds nuw i8, ptr %0, i64 44
# | next:1688'0 X error: match failed for invalid pattern
# | next:1688'1 undefined variable: INT_TBAA2
# | next:1688'2 with "ARRAYIDX" equal to "%arrayidx"
# | 720: %2 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | next:1688'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1688'3 ? possible intended match
# | 721: ret i32 %2
# | next:1688'0 ~~~~~~~~~~~~
# | 722: }
# | next:1688'0 ~~
# | 723:
# | next:1688'0 ~
# | 724: ; Function Attrs: nounwind
# | next:1688'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 725: define dso_local i32 @test26(i32 noundef %c, ptr noundef %foo) local_unnamed_addr #0 {
# | next:1688'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 736: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @37, i64 %3) #8, !nosanitize !6
# | 737: unreachable, !nosanitize !6
# | 738:
# | 739: cont5: ; preds = %entry
# | 740: %arr = getelementptr inbounds nuw i8, ptr %foo, i64 8
# | 741: %idxprom = sext i32 %c to i64
# | next:1742'0 X error: no match found
# | next:1742'1 with "ARR" equal to "%arr"
# | next:1742'2 with "IDXPROM" equal to "%idxprom"
# | 742: %arrayidx = getelementptr inbounds [4 x i8], ptr %arr, i64 %idxprom
# | next:1742'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1742'3 ? possible intended match
# | 743: %4 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | next:1742'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 744: ret i32 %4
# | next:1742'0 ~~~~~~~~~~~~
# | 745: }
# | next:1742'0 ~~
# | 746:
# | next:1742'0 ~
# | 747: ; Function Attrs: nounwind
# | next:1742'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 757: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @39, i64 %1) #8, !nosanitize !6
# | 758: unreachable, !nosanitize !6
# | 759:
# | 760: cont3: ; preds = %entry
# | 761: %entries = getelementptr inbounds nuw i8, ptr %p, i64 24
# | 762: %idxprom = sext i32 %i to i64
# | next:1813'0 X error: no match found
# | next:1813'1 with "ENTRIES" equal to "%entries"
# | next:1813'2 with "IDXPROM" equal to "%idxprom"
# | 763: %arrayidx = getelementptr inbounds [8 x i8], ptr %entries, i64 %idxprom
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1813'3 ? possible intended match
# | 764: %2 = load ptr, ptr %arrayidx, align 8, !tbaa !19
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 765: %idxprom4 = sext i32 %j to i64
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 766: %arrayidx5 = getelementptr inbounds [6 x i8], ptr %2, i64 %idxprom4
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 767: ret ptr %arrayidx5
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~
# | 768: }
# | next:1813'0 ~~
# | .
# | .
# | .
# | 785: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @41, i64 %6) #8, !nosanitize !6
# | 786: unreachable, !nosanitize !6
# | 787:
# | 788: cont17: ; preds = %entry
# | 789: %arr = getelementptr inbounds nuw i8, ptr %2, i64 12
# | 790: %idxprom = sext i32 %i to i64
# | next:1881'0 X error: no match found
# | next:1881'1 with "ARR" equal to "%arr"
# | next:1881'2 with "IDXPROM" equal to "%idxprom"
# | 791: %arrayidx = getelementptr inbounds [4 x i8], ptr %arr, i64 %idxprom
# | next:1881'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1881'3 ? possible intended match
# | 792: %7 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | next:1881'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 793: ret i32 %7
# | next:1881'0 ~~~~~~~~~~~~
# | 794: }
# | next:1881'0 ~~
# | 795:
# | next:1881'0 ~
# | 796: ; Function Attrs: nounwind
# | next:1881'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 802:
# | 803: handler.out_of_bounds: ; preds = %entry
# | 804: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @43, i64 %0) #8, !nosanitize !6
# | 805: unreachable, !nosanitize !6
# | 806:
# | 807: cont3: ; preds = %entry
# | next:1942'0 X~~~~~~~~~~~~~~~~~ error: no match found
# | next:1942'1 with "ANN" equal to "%ann"
# | next:1942'2 with "TMP0" equal to "%0"
# | 808: %arrayidx = getelementptr inbounds nuw [8 x i8], ptr %ann, i64 %0
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 809: %2 = load ptr, ptr %arrayidx, align 8, !tbaa !23
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 810: %counted_by.gep = getelementptr inbounds nuw i8, ptr %2, i64 8
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1942'3 ? possible intended match
# | 811: %counted_by.load = load i32, ptr %counted_by.gep, align 4
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 812: %3 = icmp ult i32 %idx2, %counted_by.load, !nosanitize !6
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 813: %4 = icmp sgt i32 %counted_by.load, 0, !nosanitize !6
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 814: %5 = and i1 %4, %3, !nosanitize !6
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 815: br i1 %5, label %cont32, label %handler.out_of_bounds28, !prof !7, !nosanitize !6
# | next:1942'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 866: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @50, i64 %5) #8, !nosanitize !6
# | 867: unreachable, !nosanitize !6
# | 868:
# | 869: cont9: ; preds = %cont1
# | 870: %array = getelementptr inbounds nuw i8, ptr %ptr, i64 344
# | 871: %idxprom4 = sext i32 %idx1 to i64
# | next:2120'0 X error: no match found
# | next:2120'1 with "ARRAY" equal to "%array"
# | next:2120'2 with "IDXPROM4" equal to "%idxprom4"
# | 872: %arrayidx7 = getelementptr inbounds [8 x i8], ptr %array, i64 %idxprom4
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2120'3 ? possible intended match
# | 873: %count = zext nneg i32 %counted_by.load to i64
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 874: %6 = sub nsw i64 %count, %0
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 875: %reass.sub = shl nsw i64 %6, 3
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 876: %result = add nsw i64 %reass.sub, 344
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 877: store i64 %result, ptr %arrayidx7, align 8, !tbaa !25
# | next:2120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 963: handler.out_of_bounds: ; preds = %entry
# | 964: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @55, i64 %index) #8, !nosanitize !6
# | 965: unreachable, !nosanitize !6
# | 966:
# | 967: cont3: ; preds = %entry
# | 968: %array = getelementptr inbounds nuw i8, ptr %p, i64 12
# | next:2380'0 X error: no match found
# | next:2380'1 with "ARRAY" equal to "%array"
# | next:2380'2 with "INDEX" equal to "%index"
# | 969: %arrayidx = getelementptr inbounds nuw [4 x i8], ptr %array, i64 %index
# | next:2380'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2380'3 ? possible intended match
# | 970: store i32 0, ptr %arrayidx, align 4, !tbaa !2
# | next:2380'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 971: ret void
# | next:2380'0 ~~~~~~~~~~
# | 972: }
# | next:2380'0 ~~
# | 973:
# | next:2380'0 ~
# | 974: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | next:2380'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 996: }
# | 997:
# | 998: ; Function Attrs: nounwind
# | 999: define dso_local noundef i64 @test38(ptr noundef %ptr) local_unnamed_addr #0 {
# | 1000: entry:
# | 1001: %count = getelementptr inbounds nuw i8, ptr %ptr, i64 8
# | next:2513'0 X error: match failed for invalid pattern
# | next:2513'1 undefined variable: INT_TBAA2
# | next:2513'2 with "COUNT" equal to "%count"
# | 1002: store i32 -42, ptr %count, align 8, !tbaa !2
# | next:2513'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2513'3 ? possible intended match
# | 1003: ret i64 0
# | next:2513'0 ~~~~~~~~~~~
# | 1004: }
# | next:2513'0 ~~
# | 1005:
# | next:2513'0 ~
# | 1006: ; Function Attrs: noreturn nounwind
# | next:2513'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1007: define dso_local noundef range(i64 -2147483648, 2147483648) i64 @test39(ptr noundef %ptr, i32 noundef %index) local_unnamed_addr #3 {
# | next:2513'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1008: entry:
# | 1009: %count = getelementptr inbounds nuw i8, ptr %ptr, i64 8
# | next:2546'0 X error: match failed for invalid pattern
# | next:2546'1 undefined variable: INT_TBAA2
# | next:2546'2 with "COUNT" equal to "%count"
# | 1010: store i32 -42, ptr %count, align 8, !tbaa !2
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2546'3 ? possible intended match
# | 1011: %0 = zext i32 %index to i64, !nosanitize !6
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1012: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @56, i64 %0) #8, !nosanitize !6
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1013: unreachable, !nosanitize !6
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1014: }
# | next:2546'0 ~~
# | 1015:
# | next:2546'0 ~
# | 1016: ; Function Attrs: nounwind
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1017: define dso_local ptr @test40(ptr noundef %q) local_unnamed_addr #0 {
# | next:2546'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1018: entry:
# | 1019: %.counted_by.load = load i16, ptr %q, align 4
# | 1020: %.not = icmp eq i16 %.counted_by.load, 0
# | next:2607'0 X error: match failed for invalid pattern
# | next:2607'1 undefined variable: PROF8
# | next:2607'2 with "DOTNOT" equal to "%.not"
# | next:2607'3 with "META6" equal to "!6"
# | 1021: br i1 %.not, label %handler.out_of_bounds, label %cont3, !prof !8, !nosanitize !6
# | next:2607'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2607'4 ? possible intended match
# | 1022:
# | next:2607'0 ~
# | 1023: handler.out_of_bounds: ; preds = %entry
# | next:2607'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1024: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @58, i64 0) #8, !nosanitize !6
# | next:2607'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1025: unreachable, !nosanitize !6
# | next:2607'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1026:
# | next:2607'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Clang.CodeGen/union-tbaa1.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/union-tbaa1.c -triple hexagon-unknown-elf -O2 -emit-llvm -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/union-tbaa1.c
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/union-tbaa1.c -triple hexagon-unknown-elf -O2 -emit-llvm -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/clang/test/CodeGen/union-tbaa1.c
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/union-tbaa1.c:17:16: error: CHECK-NEXT: expected string not found in input
# | // CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], ptr [[ARR]], i32 [[TMP0]]
# | ^
# | <stdin>:13:46: note: scanning from here
# | %0 = load i32, ptr %Index, align 4, !tbaa !2
# | ^
# | <stdin>:13:46: note: with "ARR" equal to "%Arr"
# | %0 = load i32, ptr %Index, align 4, !tbaa !2
# | ^
# | <stdin>:13:46: note: with "TMP0" equal to "%0"
# | %0 = load i32, ptr %Index, align 4, !tbaa !2
# | ^
# | <stdin>:14:7: note: possible intended match here
# | %arrayidx = getelementptr inbounds [8 x i8], ptr %Arr, i32 %0
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/union-tbaa1.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 8: ; Function Attrs: nounwind
# | 9: define dso_local void @fred(i32 noundef %Num, ptr noundef writeonly captures(none) initializes((0, 8)) %Vec, ptr noundef readonly captures(none) %Index, ptr noundef readonly captures(none) %Arr) local_unnamed_addr #0 {
# | 10: entry:
# | 11: %Tmp = alloca [4 x [2 x %union.vect32]], align 8
# | 12: call void @llvm.lifetime.start.p0(ptr nonnull %Tmp) #3
# | 13: %0 = load i32, ptr %Index, align 4, !tbaa !2
# | next:17'0 X error: no match found
# | next:17'1 with "ARR" equal to "%Arr"
# | next:17'2 with "TMP0" equal to "%0"
# | 14: %arrayidx = getelementptr inbounds [8 x i8], ptr %Arr, i32 %0
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17'3 ? possible intended match
# | 15: %1 = load i32, ptr %arrayidx, align 4, !tbaa !2
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: %mul = mul i32 %1, %Num
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: %arrayidx2 = getelementptr inbounds [8 x i8], ptr %Tmp, i32 %0
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: store i32 %mul, ptr %arrayidx2, align 8, !tbaa !6
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %arrayidx5 = getelementptr inbounds nuw i8, ptr %arrayidx, i32 4
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Clang.OpenMP/taskloop_strictmodifier_codegen.cpp</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -fopenmp -O1 -x c++ -triple x86_64-apple-darwin10 -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --allow-unused-prefixes /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp --check-prefix=CHECK
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -fopenmp -O1 -x c++ -triple x86_64-apple-darwin10 -emit-llvm /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --allow-unused-prefixes /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp --check-prefix=CHECK
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:78:16: error: CHECK-NEXT: expected string not found in input
# | // CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP15]], i64 [[IDXPROM]]
# | ^
# | <stdin>:56:32: note: scanning from here
# | %idxprom = sext i32 %14 to i64
# | ^
# | <stdin>:56:32: note: with "TMP15" equal to "%15"
# | %idxprom = sext i32 %14 to i64
# | ^
# | <stdin>:56:32: note: with "IDXPROM" equal to "%idxprom"
# | %idxprom = sext i32 %14 to i64
# | ^
# | <stdin>:59:9: note: possible intended match here
# | %arrayidx9 = getelementptr inbounds i8, ptr %16, i64 %idxprom
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:161:67: error: undefined variable: CHAR_TBAA19
# | // CHECK-NEXT: store i32 [[TMP4]], ptr [[TMP6]], align 8, !tbaa [[CHAR_TBAA19]]
# | ^
# | <stdin>:163:52: note: with "TMP4" equal to "%4"
# | %6 = getelementptr inbounds nuw i8, ptr %5, i64 32
# | ^
# | <stdin>:163:52: note: with "TMP6" equal to "%6"
# | %6 = getelementptr inbounds nuw i8, ptr %5, i64 32
# | ^
# | <stdin>:164:2: note: possible intended match here
# | store i32 %4, ptr %6, align 8, !tbaa !19
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:200:72: error: undefined variable: ANYPTR_TBAA20
# | // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[TMP1]], align 8, !tbaa [[ANYPTR_TBAA20]]
# | ^
# | <stdin>:213:7: note: with "TMP1" equal to "%1"
# | entry:
# | ^
# | <stdin>:227:2: note: possible intended match here
# | %10 = load ptr, ptr %9, align 8, !tbaa !37, !alias.scope !30, !nonnull !35, !align !38
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:273:72: error: undefined variable: ANYPTR_TBAA20
# | // CHECK-NEXT: [[TMP5:%.*]] = load ptr, ptr [[TMP4]], align 8, !tbaa [[ANYPTR_TBAA20]]
# | ^
# | <stdin>:299:124: note: with "TMP4" equal to "%4"
# | %4 = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @1, i32 %0, i32 1, i64 80, i64 16, ptr nonnull @.omp_task_entry..10)
# | ^
# | <stdin>:300:2: note: possible intended match here
# | %5 = load ptr, ptr %4, align 8, !tbaa !20
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:298:72: error: undefined variable: ANYPTR_TBAA20
# | // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[TMP1]], align 8, !tbaa [[ANYPTR_TBAA20]]
# | ^
# | <stdin>:325:7: note: with "TMP1" equal to "%1"
# | entry:
# | ^
# | <stdin>:326:2: note: possible intended match here
# | %2 = load ptr, ptr %1, align 8, !tbaa !20
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp:343:13: error: undefined variable: CHARPTR_TBAA17
# | // CHECK: [[CHARPTR_TBAA17]] = !{[[META18:![0-9]+]], [[META18]], i64 0}
# | ^
# | <stdin>:416:3: note: possible intended match here
# | !39 = !{!40, !4, i64 0}
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 51:
# | 52: omp_if.then2: ; preds = %omp_if.end
# | 53: tail call void @__kmpc_taskgroup(ptr nonnull @1, i32 %0)
# | 54: %14 = load i32, ptr %argc.addr, align 4, !tbaa !3
# | 55: %15 = load ptr, ptr %argv.addr, align 8, !tbaa !7
# | 56: %idxprom = sext i32 %14 to i64
# | next:78'0 X error: no match found
# | next:78'1 with "TMP15" equal to "%15"
# | next:78'2 with "IDXPROM" equal to "%idxprom"
# | 57: %arrayidx = getelementptr inbounds [8 x i8], ptr %15, i64 %idxprom
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 58: %16 = load ptr, ptr %arrayidx, align 8, !tbaa !17
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 59: %arrayidx9 = getelementptr inbounds i8, ptr %16, i64 %idxprom
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:78'3 ? possible intended match
# | 60: %17 = load i8, ptr %arrayidx9, align 1, !tbaa !19
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 61: %conv = sext i8 %17 to i32
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 62: %sub12 = sub i32 %conv, %14
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 63: %conv15 = zext i32 %sub12 to i64
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 64: %mul = mul nsw i64 %conv15, %idxprom
# | next:78'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 158: omp_if.then.i: ; preds = %entry
# | 159: %3 = getelementptr inbounds nuw i8, ptr %1, i64 40
# | 160: tail call void @__kmpc_taskgroup(ptr nonnull @1, i32 %0)
# | 161: %4 = load i32, ptr %3, align 4, !tbaa !3
# | 162: %5 = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @1, i32 %0, i32 33, i64 80, i64 1, ptr nonnull @.omp_task_entry.)
# | 163: %6 = getelementptr inbounds nuw i8, ptr %5, i64 32
# | next:161'0 X error: match failed for invalid pattern
# | next:161'1 undefined variable: CHAR_TBAA19
# | next:161'2 with "TMP4" equal to "%4"
# | next:161'3 with "TMP6" equal to "%6"
# | 164: store i32 %4, ptr %6, align 8, !tbaa !19
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:161'4 ? possible intended match
# | 165: %7 = getelementptr inbounds nuw i8, ptr %5, i64 40
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 166: store i64 0, ptr %7, align 8, !tbaa !15
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 167: %8 = getelementptr inbounds nuw i8, ptr %5, i64 48
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 168: store i64 9, ptr %8, align 8, !tbaa !15
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 169: %9 = getelementptr inbounds nuw i8, ptr %5, i64 56
# | next:161'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 208:
# | 209: declare void @__kmpc_taskloop_5(ptr, i32, ptr, i32, ptr, ptr, i64, i32, i32, i64, i32, ptr) local_unnamed_addr
# | 210:
# | 211: ; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: readwrite, target_mem0: none, target_mem1: none)
# | 212: define internal noundef i32 @.omp_task_entry..6(i32 %0, ptr noalias noundef readonly captures(none) %1) #5 {
# | 213: entry:
# | next:200'0 X error: match failed for invalid pattern
# | next:200'1 undefined variable: ANYPTR_TBAA20
# | next:200'2 with "TMP1" equal to "%1"
# | 214: %2 = load ptr, ptr %1, align 8, !tbaa !20
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 215: %3 = getelementptr inbounds nuw i8, ptr %1, i64 40
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 216: %4 = load i64, ptr %3, align 8, !tbaa !28
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 217: %5 = getelementptr inbounds nuw i8, ptr %1, i64 48
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 218: %6 = load i64, ptr %5, align 8, !tbaa !29
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 222: %cmp.i = icmp sgt i32 %8, 0
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 223: br i1 %cmp.i, label %land.lhs.true.i, label %.omp_outlined..5.exit
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 224:
# | next:200'0 ~
# | 225: land.lhs.true.i: ; preds = %entry
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 226: %9 = getelementptr inbounds nuw i8, ptr %2, i64 8
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 227: %10 = load ptr, ptr %9, align 8, !tbaa !37, !alias.scope !30, !nonnull !35, !align !38
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:200'3 ? possible intended match
# | 228: %11 = load ptr, ptr %10, align 8, !tbaa !7, !noalias !30
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 229: %idxprom.i = zext nneg i32 %8 to i64
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 230: %arrayidx.i = getelementptr inbounds nuw [8 x i8], ptr %11, i64 %idxprom.i
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 231: %12 = load ptr, ptr %arrayidx.i, align 8, !tbaa !17, !noalias !30
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 232: %arrayidx5.i = getelementptr inbounds nuw i8, ptr %12, i64 %idxprom.i
# | next:200'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 294: omp_if.then: ; preds = %entry
# | 295: %2 = load i32, ptr %this, align 4, !tbaa !39
# | 296: tail call void @__kmpc_taskgroup(ptr nonnull @1, i32 %0)
# | 297: %3 = load i32, ptr %c.addr, align 4, !tbaa !3
# | 298: %sub4 = add nsw i32 %3, -1
# | 299: %4 = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @1, i32 %0, i32 1, i64 80, i64 16, ptr nonnull @.omp_task_entry..10)
# | next:273'0 X error: match failed for invalid pattern
# | next:273'1 undefined variable: ANYPTR_TBAA20
# | next:273'2 with "TMP4" equal to "%4"
# | 300: %5 = load ptr, ptr %4, align 8, !tbaa !20
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:273'3 ? possible intended match
# | 301: store ptr %this, ptr %5, align 8, !tbaa !41
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 302: %agg.captured.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 303: store ptr %c.addr, ptr %agg.captured.sroa.2.0..sroa_idx, align 8, !tbaa !23
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 304: %6 = getelementptr inbounds nuw i8, ptr %4, i64 40
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 305: store i64 0, ptr %6, align 8, !tbaa !15
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 320: ret void
# | next:273'0 ~~~~~~~~~~
# | 321: }
# | next:273'0 ~~
# | 322:
# | next:273'0 ~
# | 323: ; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: readwrite, target_mem0: none, target_mem1: none)
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 324: define internal noundef i32 @.omp_task_entry..10(i32 %0, ptr noalias noundef readonly captures(none) %1) #5 {
# | next:273'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 325: entry:
# | next:298'0 X error: match failed for invalid pattern
# | next:298'1 undefined variable: ANYPTR_TBAA20
# | next:298'2 with "TMP1" equal to "%1"
# | 326: %2 = load ptr, ptr %1, align 8, !tbaa !20
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:298'3 ? possible intended match
# | 327: %3 = getelementptr inbounds nuw i8, ptr %1, i64 40
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 328: %4 = load i64, ptr %3, align 8, !tbaa !28
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 329: %5 = getelementptr inbounds nuw i8, ptr %1, i64 48
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 330: %6 = load i64, ptr %5, align 8, !tbaa !29
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 331: tail call void @llvm.experimental.noalias.scope.decl(metadata !43)
# | next:298'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 388: !11 = !{!12, !4, i64 40}
# | 389: !12 = !{!"_ZTS24kmp_task_t_with_privates", !13, i64 0, !14, i64 40}
# | 390: !13 = !{!"_ZTS10kmp_task_t", !10, i64 0, !10, i64 8, !4, i64 16, !5, i64 24, !5, i64 32}
# | 391: !14 = !{!"_ZTS15.kmp_privates.t", !4, i64 0}
# | 392: !15 = !{!16, !16, i64 0}
# | 393: !16 = !{!"long", !5, i64 0}
# | check:343'0 X error: match failed for invalid pattern
# | check:343'1 undefined variable: CHARPTR_TBAA17
# | 394: !17 = !{!18, !18, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 395: !18 = !{!"p1 omnipotent char", !10, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 396: !19 = !{!5, !5, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 397: !20 = !{!21, !10, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 398: !21 = !{!"_ZTS24kmp_task_t_with_privates", !22, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 411: !34 = !{!"_ZTSZ4mainE3$_3", !24, i64 0, !26, i64 8}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 412: !35 = !{}
# | check:343'0 ~~~~~~~~~~
# | 413: !36 = !{i64 4}
# | check:343'0 ~~~~~~~~~~~~~~~
# | 414: !37 = !{!34, !26, i64 8}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 415: !38 = !{i64 8}
# | check:343'0 ~~~~~~~~~~~~~~~
# | 416: !39 = !{!40, !4, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | check:343'2 ? possible intended match
# | 417: !40 = !{!"_ZTS1S", !4, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 418: !41 = !{!42, !42, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 419: !42 = !{!"p1 _ZTS1S", !10, i64 0}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 420: !43 = !{!44}
# | check:343'0 ~~~~~~~~~~~~~
# | 421: !44 = distinct !{!44, !45, !".omp_outlined..9: %__context"}
# | check:343'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
### Flang
<details>
<summary>Flang.Integration/unroll-loops.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 8
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-llvm -O1 -vectorize-loops -funroll-loops -mllvm -force-vector-width=2 -triple aarch64-unknown-linux-gnu -o- /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Integration/unroll-loops.f90 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Integration/unroll-loops.f90 --check-prefixes=CHECK,UNROLL
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-llvm -O1 -vectorize-loops -funroll-loops -mllvm -force-vector-width=2 -triple aarch64-unknown-linux-gnu -o- /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Integration/unroll-loops.f90
# 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/flang/test/Integration/unroll-loops.f90 --check-prefixes=CHECK,UNROLL
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Integration/unroll-loops.f90:31:17: error: UNROLL-NEXT: expected string not found in input
# | ! UNROLL-NEXT: %[[GEP0:.*]] = getelementptr i64, ptr %[[ARG0]], i64 %[[IND]]
# | ^
# | <stdin>:14:51: note: scanning from here
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:14:51: note: with "ARG0" equal to "0"
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:14:51: note: with "IND" equal to "index"
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:16:2: note: possible intended match here
# | %2 = getelementptr i8, ptr %1, i64 16
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Integration/unroll-loops.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: br label %vector.body
# | 10:
# | 11: vector.body: ; preds = %vector.body, %vector.ph
# | 12: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 13: %vec.ind = phi <2 x i64> [ <i64 1, i64 2>, %vector.ph ], [ %vec.ind.next, %vector.body ]
# | 14: %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | next:31'0 X error: no match found
# | next:31'1 with "ARG0" equal to "0"
# | next:31'2 with "IND" equal to "index"
# | 15: %1 = getelementptr [8 x i8], ptr %0, i64 %index
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: %2 = getelementptr i8, ptr %1, i64 16
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:31'3 ? possible intended match
# | 17: store <2 x i64> %vec.ind, ptr %1, align 8, !tbaa !2
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: store <2 x i64> %step.add, ptr %2, align 8, !tbaa !2
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %index.next = add nuw i64 %index, 4
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %vec.ind.next = add <2 x i64> %vec.ind, splat (i64 4)
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: %3 = icmp eq i64 %index.next, 1000
# | next:31'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/HLFIR/unroll-loops.fir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 6
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-llvm -O1 -vectorize-loops -funroll-loops -mllvm -force-vector-width=2 -triple aarch64-unknown-linux-gnu -o- /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir --check-prefixes=CHECK,UNROLL
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-llvm -O1 -vectorize-loops -funroll-loops -mllvm -force-vector-width=2 -triple aarch64-unknown-linux-gnu -o- /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir
# .---command stderr------------
# | warning: overriding the module target triple with aarch64-unknown-linux-gnu [-Woverride-module]
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir --check-prefixes=CHECK,UNROLL
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir:33:18: error: UNROLL-NEXT: expected string not found in input
# | // UNROLL-NEXT: %[[GEP0:.*]] = getelementptr i64, ptr %[[ARG0]], i64 %[[IND]]
# | ^
# | <stdin>:14:51: note: scanning from here
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:14:51: note: with "ARG0" equal to "0"
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:14:51: note: with "IND" equal to "index"
# | %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | ^
# | <stdin>:16:2: note: possible intended match here
# | %2 = getelementptr i8, ptr %1, i64 16
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/HLFIR/unroll-loops.fir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 9: br label %vector.body
# | 10:
# | 11: vector.body: ; preds = %vector.body, %vector.ph
# | 12: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# | 13: %vec.ind = phi <2 x i64> [ <i64 1, i64 2>, %vector.ph ], [ %vec.ind.next, %vector.body ]
# | 14: %step.add = add <2 x i64> %vec.ind, splat (i64 2)
# | next:33'0 X error: no match found
# | next:33'1 with "ARG0" equal to "0"
# | next:33'2 with "IND" equal to "index"
# | 15: %1 = getelementptr [8 x i8], ptr %0, i64 %index
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: %2 = getelementptr i8, ptr %1, i64 16
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:33'3 ? possible intended match
# | 17: store <2 x i64> %vec.ind, ptr %1, align 8, !tbaa !1
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: store <2 x i64> %step.add, ptr %2, align 8, !tbaa !1
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: %index.next = add nuw i64 %index, 4
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: %vec.ind.next = add <2 x i64> %vec.ind, splat (i64 4)
# | next:33'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 21: %3 = icmp eq i64 %index.next, 1000
# | next:33'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/180745
More information about the llvm-commits
mailing list