Skip to content

Conversation

@Xinlong-Wu
Copy link
Contributor

Extend canEvaluateTruncated to handle umin/umax intrinsics, allowing
them to be narrowed when the result is truncated and operands can be safely
evaluated in a narrower type.

Also improve and instruction handling: if high bits above the truncation
width are known zero in either operand, the and can be safely narrowed
(truncate first, then apply the truncated mask if needed).

this PR fix the issue #167096

@Xinlong-Wu Xinlong-Wu requested a review from nikic as a code owner December 22, 2025 07:08
@llvmbot llvmbot added llvm:instcombine Covers the InstCombine, InstSimplify and AggressiveInstCombine passes llvm:transforms labels Dec 22, 2025
@llvmbot
Copy link
Member

llvmbot commented Dec 22, 2025

@llvm/pr-subscribers-llvm-transforms

Author: XinlongWu (Xinlong-Wu)

Changes

Extend canEvaluateTruncated to handle umin/umax intrinsics, allowing
them to be narrowed when the result is truncated and operands can be safely
evaluated in a narrower type.

Also improve and instruction handling: if high bits above the truncation
width are known zero in either operand, the and can be safely narrowed
(truncate first, then apply the truncated mask if needed).

this PR fix the issue #167096


Full diff: https://github.com/llvm/llvm-project/pull/173221.diff

2 Files Affected:

  • (modified) llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp (+60-2)
  • (added) llvm/test/Transforms/InstCombine/cast-minmax-call.ll (+39)
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp index 0cd2c09726a2d..733d4e44db7a2 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -21,9 +21,11 @@ #include "llvm/IR/DataLayout.h" #include "llvm/IR/DebugInfo.h" #include "llvm/IR/Instruction.h" +#include "llvm/IR/Intrinsics.h" #include "llvm/IR/PatternMatch.h" #include "llvm/IR/Type.h" #include "llvm/IR/Value.h" +#include "llvm/Support/Casting.h" #include "llvm/Support/KnownBits.h" #include "llvm/Transforms/InstCombine/InstCombiner.h" #include <iterator> @@ -53,10 +55,29 @@ static Value *EvaluateInDifferentTypeImpl(Value *V, Type *Ty, bool isSigned, Instruction *Res = nullptr; unsigned Opc = I->getOpcode(); switch (Opc) { + case Instruction::And: { + APInt LowBitMask = APInt::getLowBitsSet(I->getType()->getScalarSizeInBits(), + Ty->getScalarSizeInBits()); + Value *MaskedValue; + const APInt *AndMask; + if (match(I, m_And(m_Value(MaskedValue), m_APInt(AndMask)))) { + Res = CastInst::CreateIntegerCast(MaskedValue, Ty, isSigned); + // if the and operation do a standard narrowing, we can just cast the + // masked value otherwise, we also need to and the casted value with the + // low bits mask + if (LowBitMask != *AndMask) { + Value *CastedValue = IC.InsertNewInstWith(Res, I->getIterator()); + Res = BinaryOperator::CreateAnd( + CastedValue, + ConstantInt::get(Ty, AndMask->trunc(Ty->getScalarSizeInBits()))); + } + break; + } + [[fallthrough]]; + } case Instruction::Add: case Instruction::Sub: case Instruction::Mul: - case Instruction::And: case Instruction::Or: case Instruction::Xor: case Instruction::AShr: @@ -122,6 +143,17 @@ static Value *EvaluateInDifferentTypeImpl(Value *V, Type *Ty, bool isSigned, Res = CallInst::Create(Fn->getFunctionType(), Fn); break; } + case Intrinsic::umin: + case Intrinsic::umax: { + Value *LHS = EvaluateInDifferentTypeImpl(I->getOperand(0), Ty, isSigned, + IC, Processed); + Value *RHS = EvaluateInDifferentTypeImpl(I->getOperand(1), Ty, isSigned, + IC, Processed); + Function *Fn = Intrinsic::getOrInsertDeclaration( + I->getModule(), II->getIntrinsicID(), {Ty}); + Res = CallInst::Create(Fn->getFunctionType(), Fn, {LHS, RHS}); + break; + } } } break; @@ -489,10 +521,21 @@ bool TypeEvaluationHelper::canEvaluateTruncatedPred(Value *V, Type *Ty, auto *I = cast<Instruction>(V); Type *OrigTy = V->getType(); switch (I->getOpcode()) { + case Instruction::And: { + // And can be truncated if all the truncated bits are zero. + uint32_t OrigBitWidth = OrigTy->getScalarSizeInBits(); + uint32_t BitWidth = Ty->getScalarSizeInBits(); + assert(BitWidth < OrigBitWidth && "Unexpected bitwidths!"); + APInt Mask = APInt::getBitsSetFrom(OrigBitWidth, BitWidth); + if (IC.MaskedValueIsZero(I->getOperand(0), Mask, CxtI) || + IC.MaskedValueIsZero(I->getOperand(1), Mask, CxtI)) { + return true; + } + [[fallthrough]]; + } case Instruction::Add: case Instruction::Sub: case Instruction::Mul: - case Instruction::And: case Instruction::Or: case Instruction::Xor: // These operators can all arbitrarily be extended or truncated. @@ -607,6 +650,21 @@ bool TypeEvaluationHelper::canEvaluateTruncatedPred(Value *V, Type *Ty, return canEvaluateTruncatedImpl(I->getOperand(0), Ty, IC, CxtI) && canEvaluateTruncatedImpl(I->getOperand(1), Ty, IC, CxtI); + case Instruction::Call: + if (const IntrinsicInst *II = dyn_cast<IntrinsicInst>(I)) { + switch (II->getIntrinsicID()) { + case Intrinsic::umin: { + Value *Op0 = II->getArgOperand(0); + Value *Op1 = II->getArgOperand(1); + return canEvaluateTruncatedImpl(Op0, Ty, IC, CxtI) && + canEvaluateTruncatedImpl(Op1, Ty, IC, CxtI); + } + default: + break; + } + } + break; + default: // TODO: Can handle more cases here. break; diff --git a/llvm/test/Transforms/InstCombine/cast-minmax-call.ll b/llvm/test/Transforms/InstCombine/cast-minmax-call.ll new file mode 100644 index 0000000000000..9d4fb229f3483 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/cast-minmax-call.ll @@ -0,0 +1,39 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 +; RUN: opt < %s -passes=instcombine -S | FileCheck %s + +define i16 @src(i32 %arg1, i32 %arg2, ptr %arg0) { +; CHECK-LABEL: define i16 @src( +; CHECK-SAME: i32 [[ARG1:%.*]], i32 [[ARG2:%.*]], ptr [[ARG0:%.*]]) { +; CHECK-NEXT: [[V0:%.*]] = udiv i32 [[ARG2]], [[ARG1]] +; CHECK-NEXT: [[V1:%.*]] = load i16, ptr [[ARG0]], align 2 +; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[V0]] to i16 +; CHECK-NEXT: [[V2:%.*]] = and i16 [[TMP1]], -6 +; CHECK-NEXT: [[V4:%.*]] = call i16 @llvm.umin.i16(i16 [[V2]], i16 [[V1]]) +; CHECK-NEXT: ret i16 [[V4]] +; + %v0 = udiv i32 %arg2, %arg1 + %v1 = load i16, ptr %arg0, align 2 + %v2 = and i32 %v0, 65530 + %v3 = zext i16 %v1 to i32 + %v4 = call i32 @llvm.umin.i32(i32 %v2, i32 %v3) + %v5 = trunc nuw i32 %v4 to i16 + ret i16 %v5 +} + +define i16 @src1(i32 %arg1, i32 %arg2, ptr %arg0) { +; CHECK-LABEL: define i16 @src1( +; CHECK-SAME: i32 [[ARG1:%.*]], i32 [[ARG2:%.*]], ptr [[ARG0:%.*]]) { +; CHECK-NEXT: [[V0:%.*]] = udiv i32 [[ARG2]], [[ARG1]] +; CHECK-NEXT: [[V1:%.*]] = load i16, ptr [[ARG0]], align 2 +; CHECK-NEXT: [[V2:%.*]] = trunc i32 [[V0]] to i16 +; CHECK-NEXT: [[V4:%.*]] = call i16 @llvm.umin.i16(i16 [[V2]], i16 [[V1]]) +; CHECK-NEXT: ret i16 [[V4]] +; + %v0 = udiv i32 %arg2, %arg1 + %v1 = load i16, ptr %arg0, align 2 + %v2 = and i32 %v0, 65535 + %v3 = zext i16 %v1 to i32 + %v4 = call i32 @llvm.umin.i32(i32 %v2, i32 %v3) + %v5 = trunc nuw i32 %v4 to i16 + ret i16 %v5 +} 
@github-actions
Copy link

🪟 Windows x64 Test Results

  • 128830 tests passed
  • 2838 tests skipped
  • 19 tests failed

Failed Tests

(click on a test name to see its output)

Clang

Clang.CodeGen/bitfield-2.c
Exit Code: 3221225501 Command Output (stdout): -- # RUN: at line 1 c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\22\include -nostdsysteminc -emit-llvm -triple x86_64 -O3 -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\CodeGen\Output\bitfield-2.c.tmp.opt.ll C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c -fdump-record-layouts > C:\_work\llvm-project\llvm-project\build\tools\clang\test\CodeGen\Output\bitfield-2.c.tmp.dump.txt # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\22\include' -nostdsysteminc -emit-llvm -triple x86_64 -O3 -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\CodeGen\Output\bitfield-2.c.tmp.opt.ll' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c' -fdump-record-layouts # .---redirected output from 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\CodeGen\Output\bitfield-2.c.tmp.dump.txt' # | # | *** Dumping AST Record Layout # | 0 | struct s0 # | 0:0-23 | int f0 # | | [sizeof=3, align=1] # | # | *** Dumping IRgen Record Layout # | Record: RecordDecl 0x23e20207c48 <C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:18:1, line:20:1> line:18:30 struct s0 definition # | |-PackedAttr 0x23e20207cc8 <col:21> # | `-FieldDecl 0x23e20207d88 <line:19:3, col:12> col:7 f0 'int' # | `-ConstantExpr 0x23e20207d68 <col:12> 'int' # | |-value: Int 24 # | `-IntegerLiteral 0x23e20207d28 <col:12> 'int' 24 # | # | Layout: <CGRecordLayout # | LLVMType:%struct.s0 = type { [3 x i8] } # | IsZeroInitializable:1 # | BitFields:[ # | <CGBitFieldInfo Offset:0 Size:24 IsSigned:1 StorageSize:24 StorageOffset:0 VolatileOffset:0 VolatileStorageSize:0 VolatileStorageOffset:0> # | ]> # | # | *** Dumping AST Record Layout # | 0 | struct s1 # | 0:0-9 | int f0 # | 1:2-11 | int f1 # | | [sizeof=3, align=1] # | # | *** Dumping IRgen Record Layout # | Record: RecordDecl 0x23e20246948 <C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c: # | ... # `---data was truncated-------- # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:22:18: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -5390609 [-Wbitfield-constant-conversion] # | 22 | struct s0 g0 = { 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:39:20: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -5390609 [-Wbitfield-constant-conversion] # | 39 | struct s0 g0 = { 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:68:18: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -273 [-Wbitfield-constant-conversion] # | 68 | struct s1 g1 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:68:30: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -273 [-Wbitfield-constant-conversion] # | 68 | struct s1 g1 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:75:18: warning: implicit truncation from 'int' to bit-field changes value from 1234 to 210 [-Wbitfield-constant-conversion] # | 75 | return (a0->f1 = 1234); # | | ^ ~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:85:20: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -273 [-Wbitfield-constant-conversion] # | 85 | struct s1 g1 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:85:32: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -273 [-Wbitfield-constant-conversion] # | 85 | struct s1 g1 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:111:17: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 7 [-Wbitfield-constant-conversion] # | 111 | union u2 g2 = { 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:117:18: warning: implicit truncation from 'int' to bit-field changes value from 1234 to 2 [-Wbitfield-constant-conversion] # | 117 | return (a0->f0 = 1234); # | | ^ ~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:127:19: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 7 [-Wbitfield-constant-conversion] # | 127 | union u2 g2 = { 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:181:18: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 48879 [-Wbitfield-constant-conversion] # | 181 | struct s4 g4 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:181:30: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 246267631 [-Wbitfield-constant-conversion] # | 181 | struct s4 g4 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:197:20: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 48879 [-Wbitfield-constant-conversion] # | 197 | struct s4 g4 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:197:32: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 246267631 [-Wbitfield-constant-conversion] # | 197 | struct s4 g4 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:213:18: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 3 [-Wbitfield-constant-conversion] # | 213 | struct s5 g5 = { 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:219:18: warning: implicit truncation from 'int' to bit-field changes value from 15 to 3 [-Wbitfield-constant-conversion] # | 219 | return (a0->f0 = 0xF) ^ (a0->f1 = 0xF) ^ (a0->f2 = 0xF); # | | ^ ~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:229:20: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to 3 [-Wbitfield-constant-conversion] # | 229 | struct s5 g5 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:243:18: warning: implicit truncation from 'int' to bit-field changes value from 15 to 3 [-Wbitfield-constant-conversion] # | 243 | struct s6 g6 = { 0xF }; # | | ^~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:259:20: warning: implicit truncation from 'int' to bit-field changes value from 15 to 3 [-Wbitfield-constant-conversion] # | 259 | struct s6 g6 = { 0xF }; # | | ^~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:301:18: warning: implicit truncation from 'int' to bit-field changes value from 15 to -1 [-Wbitfield-constant-conversion] # | 301 | struct s8 g8 = { 0xF }; # | | ^~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:307:54: warning: implicit truncation from 'int' to bit-field changes value from 253 to -3 [-Wbitfield-constant-conversion] # | 307 | return (a0->f0 = 0xFD) ^ (a0->f2 = 0xFD) ^ (a0->f3 = 0xFD); # | | ^ ~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:307:36: warning: implicit truncation from 'int' to bit-field changes value from 253 to -3 [-Wbitfield-constant-conversion] # | 307 | return (a0->f0 = 0xFD) ^ (a0->f2 = 0xFD) ^ (a0->f3 = 0xFD); # | | ^ ~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:307:18: warning: implicit truncation from 'int' to bit-field changes value from 253 to -3 [-Wbitfield-constant-conversion] # | 307 | return (a0->f0 = 0xFD) ^ (a0->f2 = 0xFD) ^ (a0->f3 = 0xFD); # | | ^ ~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:20: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -1 [-Wbitfield-constant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:44: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -1 [-Wbitfield-constant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:56: warning: implicit truncation from 'unsigned int' to bit-field changes value from 3735928559 to -1 [-Wbitfield-constant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:56: warning: implicit conversion from 'unsigned int' to 'char' changes value from 3735928559 to -17 [-Wconstant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ~ ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:32: warning: implicit conversion from 'unsigned int' to 'char' changes value from 3735928559 to -17 [-Wconstant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ~ ^~~~~~~~~~ # | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c:317:20: warning: implicit conversion from 'unsigned int' to 'char' changes value from 3735928559 to -17 [-Wconstant-conversion] # | 317 | struct s8 g8 = { 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef }; # | | ~ ^~~~~~~~~~ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\clang.exe -cc1 -internal-isystem C:\\_work\\llvm-project\\llvm-project\\build\\lib\\clang\\22\\include -nostdsysteminc -emit-llvm -triple x86_64 -O3 -o C:\\_work\\llvm-project\\llvm-project\\build\\tools\\clang\\test\\CodeGen\\Output\\bitfield-2.c.tmp.opt.ll C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\bitfield-2.c -fdump-record-layouts # | 1.	<eof> parser at end of file # | 2.	Optimizer # | 3.	Running pass "function<eager-inv>(mem2reg,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>)" on module "C:\_work\llvm-project\llvm-project\clang\test\CodeGen\bitfield-2.c" # | 4.	Running pass "instcombine<max-iterations=1;no-verify-fixpoint>" on function "f4_reload" # | Exception Code: 0xC000001D # | #0 0x00007ff71c0c7436 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x7e7436) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff71bcf5800 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x415800) # | #6 0x00007ff71dd0cd15 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x242cd15) # | #7 0x00007ff71dd0c9c3 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x242c9c3) # | #8 0x00007ff71dd12476 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x2432476) # | #9 0x00007ff71bee08fe (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x6008fe) # | #10 0x00007ff71bee4b06 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x604b06) # | #11 0x00007ff71bee3f4f (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x603f4f) # | #12 0x00007ff71cb4efd1 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x126efd1) # | #13 0x00007ff71cb2196d (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x124196d) # | #14 0x00007ff71b9cd2e1 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0xed2e1) # | #15 0x00007ff71cb24066 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x1244066) # | #16 0x00007ff71b9ce011 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0xee011) # | #17 0x00007ff71cb208ed (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x12408ed) # | #18 0x00007ff71e07d188 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x279d188) # | #19 0x00007ff71e072b4f (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x2792b4f) # | #20 0x00007ff71e5f016c (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x2d1016c) # | #21 0x00007ff7210e3887 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x5803887) # | #22 0x00007ff71e53b30f (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x2c5b30f) # | #23 0x00007ff71c202114 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x922114) # | #24 0x00007ff71c2a6733 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x9c6733) # | #25 0x00007ff71b8e9207 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x9207) # | #26 0x00007ff71b8e4774 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x4774) # | #27 0x00007ff71b8e29ca (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x29ca) # | #28 0x00007ff71b8f8d37 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x18d37) # | #29 0x00007ff722a7ef74 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x719ef74) # | #30 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #31 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d -- 

LLVM

LLVM.Transforms/IndVarSimplify/X86/2009-04-15-shorten-iv-vars-2.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 1 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\IndVarSimplify\X86\2009-04-15-shorten-iv-vars-2.ll -passes='loop(indvars),instcombine' -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\IndVarSimplify\X86\2009-04-15-shorten-iv-vars-2.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=loop(indvars),instcombine' -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=loop(indvars),instcombine -S # | 1.	Running pass "function(loop(indvars),instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "foo" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\IndVarSimplify\X86\2009-04-15-shorten-iv-vars-2.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\IndVarSimplify\X86\2009-04-15-shorten-iv-vars-2.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/cast-mul-select.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast-mul-select.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast-mul-select.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "eval_sext_multi_use_in_one_inst" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c14c93 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c93) # | #8 0x00007ff799c14c93 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c93) # | #9 0x00007ff799c1c117 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1c117) # | #10 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #11 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #12 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #13 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #14 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #15 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #16 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #17 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #18 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #19 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #20 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #21 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #22 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #23 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #24 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast-mul-select.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast-mul-select.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/cast.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 3 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast.ll -passes=instcombine -S -data-layout="E-p:64:64:64-p1:32:32:32-p2:64:64:64-p3:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128-n8:16:32:64" | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast.ll --check-prefixes=ALL,BE # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S -data-layout=E-p:64:64:64-p1:32:32:32-p2:64:64:64-p3:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128-n8:16:32:64 # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S -data-layout=E-p:64:64:64-p1:32:32:32-p2:64:64:64-p3:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128-n8:16:32:64 # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "test46" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast.ll' --check-prefixes=ALL,BE # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\cast.ll --check-prefixes=ALL,BE # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/funnel.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll' # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll:270:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[CONV2:%.*]] = call i8 @llvm.fshr.i8(i8 [[TMP3]], i8 [[TMP4]], i8 [[TMP2]]) # | ^ # | <stdin>:107:25: note: scanning from here # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:107:25: note: with "TMP3" equal to "%convx" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:107:25: note: with "TMP4" equal to "%2" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:107:25: note: with "TMP2" equal to "%and" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:108:2: note: possible intended match here # | %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %convx, i8 %and) # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll:292:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[CONV2:%.*]] = call i8 @llvm.fshr.i8(i8 [[TMP3]], i8 [[TMP4]], i8 [[TMP2]]) # | ^ # | <stdin>:116:25: note: scanning from here # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:116:25: note: with "TMP3" equal to "%convx" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:116:25: note: with "TMP4" equal to "%2" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:116:25: note: with "TMP2" equal to "%and" # | %2 = trunc i32 %y to i8 # | ^ # | <stdin>:117:2: note: possible intended match here # | %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %convx, i8 %and) # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll:550:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[T8:%.*]] = call i8 @llvm.fshr.i8(i8 [[TMP2]], i8 [[TMP3]], i8 [[TMP1]]) # | ^ # | <stdin>:235:25: note: scanning from here # | %2 = trunc i16 %y to i8 # | ^ # | <stdin>:235:25: note: with "TMP2" equal to "%maskx" # | %2 = trunc i16 %y to i8 # | ^ # | <stdin>:235:25: note: with "TMP3" equal to "%2" # | %2 = trunc i16 %y to i8 # | ^ # | <stdin>:235:25: note: with "TMP1" equal to "%1" # | %2 = trunc i16 %y to i8 # | ^ # | <stdin>:236:2: note: possible intended match here # | %t8 = call i8 @llvm.fshr.i8(i8 %2, i8 %maskx, i8 %1) # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\funnel.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 102: # | 103: define i8 @fshr_commute_8bit(i32 %x, i32 %y, i32 %shift) { # | 104: %1 = trunc i32 %shift to i8 # | 105: %and = and i8 %1, 3 # | 106: %convx = trunc i32 %x to i8 # | 107: %2 = trunc i32 %y to i8 # | next:270'0 X error: no match found # | next:270'1 with "TMP3" equal to "%convx" # | next:270'2 with "TMP4" equal to "%2" # | next:270'3 with "TMP2" equal to "%and" # | 108: %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %convx, i8 %and) # | next:270'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:270'4 ? possible intended match # | 109: ret i8 %conv2 # | next:270'0 ~~~~~~~~~~~~~~~ # | 110: } # | next:270'0 ~~ # | 111: # | next:270'0 ~ # | 112: define i8 @fshr_commute_8bit_unmasked_shl(i32 %x, i32 %y, i32 %shift) { # | next:270'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 113: %1 = trunc i32 %shift to i8 # | 114: %and = and i8 %1, 3 # | 115: %convx = trunc i32 %x to i8 # | 116: %2 = trunc i32 %y to i8 # | next:292'0 X error: no match found # | next:292'1 with "TMP3" equal to "%convx" # | next:292'2 with "TMP4" equal to "%2" # | next:292'3 with "TMP2" equal to "%and" # | 117: %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %convx, i8 %and) # | next:292'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:292'4 ? possible intended match # | 118: ret i8 %conv2 # | next:292'0 ~~~~~~~~~~~~~~~ # | 119: } # | next:292'0 ~~ # | 120: # | next:292'0 ~ # | 121: define i8 @fshr_select(i8 %x, i8 %y, i8 %shamt) { # | next:292'0 ~~~~~~~~~~~~~~~~~~~~~~~ # | 122: %1 = freeze i8 %x # | . # | . # | . # | 230: } # | 231: # | 232: define i8 @unmasked_shlop_masked_shift_amount(i16 %x, i16 %y, i16 %shamt) { # | 233: %1 = trunc i16 %shamt to i8 # | 234: %maskx = trunc i16 %x to i8 # | 235: %2 = trunc i16 %y to i8 # | next:550'0 X error: no match found # | next:550'1 with "TMP2" equal to "%maskx" # | next:550'2 with "TMP3" equal to "%2" # | next:550'3 with "TMP1" equal to "%1" # | 236: %t8 = call i8 @llvm.fshr.i8(i8 %2, i8 %maskx, i8 %1) # | next:550'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:550'4 ? possible intended match # | 237: ret i8 %t8 # | next:550'0 ~~~~~~~~~~~~ # | 238: } # | next:550'0 ~~ # | 239: # | next:550'0 ~ # | 240: define i32 @test_rotl_and_neg(i32 %x, i32 %shamt) { # | next:550'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 241: %or = call i32 @llvm.fshl.i32(i32 %x, i32 %x, i32 %shamt) # | . # | . # | . # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/InstCombine/icmp-mul-zext.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\icmp-mul-zext.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\icmp-mul-zext.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # .---command stderr------------ # | Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Support/Casting.h, line 572 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "sterix" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799c14c11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c11) # | #6 0x00007ff799c14c93 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c93) # | #7 0x00007ff799c17403 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd17403) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\icmp-mul-zext.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\icmp-mul-zext.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/instcombine-verify-known-bits.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine -instcombine-verify-known-bits < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\instcombine-verify-known-bits.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\instcombine-verify-known-bits.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine -instcombine-verify-known-bits # .---command stderr------------ # | Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Support/Casting.h, line 572 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -S -passes=instcombine -instcombine-verify-known-bits # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "pr110631" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799c14c11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c11) # | #6 0x00007ff799c14c93 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c93) # | #7 0x00007ff799c17403 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd17403) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\instcombine-verify-known-bits.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\instcombine-verify-known-bits.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/rotate.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll' # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:448:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[CONV2:%.*]] = call i8 @llvm.fshr.i8(i8 [[TMP3]], i8 [[TMP4]], i8 [[TMP2]]) # | ^ # | <stdin>:183:25: note: scanning from here # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:183:25: note: with "TMP3" equal to "%conv" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:183:25: note: with "TMP4" equal to "%2" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:183:25: note: with "TMP2" equal to "%and" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:184:5: note: possible intended match here # | %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %conv, i8 %and) # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:469:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[CONV2:%.*]] = call i8 @llvm.fshr.i8(i8 [[TMP3]], i8 [[TMP4]], i8 [[TMP2]]) # | ^ # | <stdin>:192:25: note: scanning from here # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:192:25: note: with "TMP3" equal to "%conv" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:192:25: note: with "TMP4" equal to "%2" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:192:25: note: with "TMP2" equal to "%and" # | %2 = trunc i32 %v to i8 # | ^ # | <stdin>:193:5: note: possible intended match here # | %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %conv, i8 %and) # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:602:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[RET:%.*]] = call i16 @llvm.fshr.i16(i16 [[V:%.*]], i16 [[V]], i16 [[TMP1]]) # | ^ # | <stdin>:234:30: note: scanning from here # | %1 = trunc i32 %shamt to i16 # | ^ # | <stdin>:234:30: note: with "TMP1" equal to "%1" # | %1 = trunc i32 %shamt to i16 # | ^ # | <stdin>:240:2: note: possible intended match here # | %shr = lshr i16 %v, %rshamt # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:619:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[RET:%.*]] = call i16 @llvm.fshr.i16(i16 [[V:%.*]], i16 [[V]], i16 [[TMP1]]) # | ^ # | <stdin>:246:30: note: scanning from here # | %1 = trunc i32 %shamt to i16 # | ^ # | <stdin>:246:30: note: with "TMP1" equal to "%1" # | %1 = trunc i32 %shamt to i16 # | ^ # | <stdin>:252:2: note: possible intended match here # | %shr = lshr i16 %v, %rshamt # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:653:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.fshl.i8(i8 [[V:%.*]], i8 [[V]], i8 [[TMP1]]) # | ^ # | <stdin>:264:29: note: scanning from here # | %1 = trunc i32 %shamt to i8 # | ^ # | <stdin>:264:29: note: with "TMP1" equal to "%1" # | %1 = trunc i32 %shamt to i8 # | ^ # | <stdin>:269:2: note: possible intended match here # | %shl = shl i8 %v, %lshamt # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:670:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.fshl.i8(i8 [[V:%.*]], i8 [[V]], i8 [[TMP1]]) # | ^ # | <stdin>:276:29: note: scanning from here # | %1 = trunc i32 %shamt to i8 # | ^ # | <stdin>:276:29: note: with "TMP1" equal to "%1" # | %1 = trunc i32 %shamt to i8 # | ^ # | <stdin>:281:2: note: possible intended match here # | %shl = shl i8 %v, %lshamt # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:705:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[NEG:%.*]] = sub i33 0, [[SHAMT:%.*]] # | ^ # | <stdin>:293:54: note: scanning from here # | define i9 @rotateleft_9_neg_mask_wide_amount_commute(i9 %v, i33 %shamt) { # | ^ # | <stdin>:297:2: note: possible intended match here # | %3 = sub i9 0, %2 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll:966:15: error: CHECK-NEXT: is not on the line after the previous match # | ; CHECK-NEXT: [[TMP1:%.*]] = zext i8 [[SHAMT:%.*]] to i16 # | ^ # | <stdin>:394:2: note: 'next' match was here # | %z = zext i8 %shamt to i16 # | ^ # | <stdin>:391:39: note: previous match ended here # | define i16 @check_rotate_masked_16bit(i8 %shamt, i32 %cond) { # | ^ # | <stdin>:392:1: note: non-matching line after previous match is here # | %1 = trunc i32 %cond to i16 # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\rotate.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 178: # | 179: define i8 @rotate_right_commute_8bit_unmasked_shl(i32 %v, i32 %shift) { # | 180: %1 = trunc i32 %shift to i8 # | 181: %and = and i8 %1, 3 # | 182: %conv = trunc i32 %v to i8 # | 183: %2 = trunc i32 %v to i8 # | next:448'0 X error: no match found # | next:448'1 with "TMP3" equal to "%conv" # | next:448'2 with "TMP4" equal to "%2" # | next:448'3 with "TMP2" equal to "%and" # | 184: %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %conv, i8 %and) # | next:448'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:448'4 ? possible intended match # | 185: ret i8 %conv2 # | next:448'0 ~~~~~~~~~~~~~~~ # | 186: } # | next:448'0 ~~ # | 187: # | next:448'0 ~ # | 188: define i8 @rotate_right_commute_8bit(i32 %v, i32 %shift) { # | next:448'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 189: %1 = trunc i32 %shift to i8 # | 190: %and = and i8 %1, 3 # | 191: %conv = trunc i32 %v to i8 # | 192: %2 = trunc i32 %v to i8 # | next:469'0 X error: no match found # | next:469'1 with "TMP3" equal to "%conv" # | next:469'2 with "TMP4" equal to "%2" # | next:469'3 with "TMP2" equal to "%and" # | 193: %conv2 = call i8 @llvm.fshr.i8(i8 %2, i8 %conv, i8 %and) # | next:469'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:469'4 ? possible intended match # | 194: ret i8 %conv2 # | next:469'0 ~~~~~~~~~~~~~~~ # | 195: } # | next:469'0 ~~ # | 196: # | next:469'0 ~ # | 197: define i8 @rotate8_not_safe(i8 %v, i32 %shamt) { # | next:469'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 198: %1 = trunc i32 %shamt to i8 # | . # | . # | . # | 229: %or = call i8 @llvm.fshr.i8(i8 %v, i8 %v, i8 %shamt) # | 230: ret i8 %or # | 231: } # | 232: # | 233: define i16 @rotateright_16_neg_mask_wide_amount(i16 %v, i32 %shamt) { # | 234: %1 = trunc i32 %shamt to i16 # | next:602'0 X error: no match found # | next:602'1 with "TMP1" equal to "%1" # | 235: %rshamt = and i16 %1, 15 # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 236: %2 = trunc i32 %shamt to i16 # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 237: %3 = sub i16 0, %2 # | next:602'0 ~~~~~~~~~~~~~~~~~~~~ # | 238: %lshamt = and i16 %3, 15 # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 239: %shl = shl i16 %v, %lshamt # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 240: %shr = lshr i16 %v, %rshamt # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:602'2 ? possible intended match # | 241: %or = or i16 %shr, %shl # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 242: ret i16 %or # | next:602'0 ~~~~~~~~~~~~~ # | 243: } # | next:602'0 ~~ # | 244: # | next:602'0 ~ # | 245: define i16 @rotateright_16_neg_mask_wide_amount_commute(i16 %v, i32 %shamt) { # | next:602'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 246: %1 = trunc i32 %shamt to i16 # | next:619'0 X error: no match found # | next:619'1 with "TMP1" equal to "%1" # | 247: %rshamt = and i16 %1, 15 # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 248: %2 = trunc i32 %shamt to i16 # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 249: %3 = sub i16 0, %2 # | next:619'0 ~~~~~~~~~~~~~~~~~~~~ # | 250: %lshamt = and i16 %3, 15 # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 251: %shl = shl i16 %v, %lshamt # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 252: %shr = lshr i16 %v, %rshamt # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:619'2 ? possible intended match # | 253: %or = or i16 %shl, %shr # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 254: ret i16 %or # | next:619'0 ~~~~~~~~~~~~~ # | 255: } # | next:619'0 ~~ # | 256: # | next:619'0 ~ # | 257: define i64 @rotateright_64_zext_neg_mask_amount(i64 %0, i32 %1) { # | next:619'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 258: %3 = zext i32 %1 to i64 # | 259: %4 = call i64 @llvm.fshr.i64(i64 %0, i64 %0, i64 %3) # | 260: ret i64 %4 # | 261: } # | 262: # | 263: define i8 @rotateleft_8_neg_mask_wide_amount(i8 %v, i32 %shamt) { # | 264: %1 = trunc i32 %shamt to i8 # | next:653'0 X error: no match found # | next:653'1 with "TMP1" equal to "%1" # | 265: %lshamt = and i8 %1, 7 # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 266: %2 = trunc i32 %shamt to i8 # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 267: %3 = sub i8 0, %2 # | next:653'0 ~~~~~~~~~~~~~~~~~~~ # | 268: %rshamt = and i8 %3, 7 # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 269: %shl = shl i8 %v, %lshamt # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:653'2 ? possible intended match # | 270: %shr = lshr i8 %v, %rshamt # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 271: %or = or i8 %shr, %shl # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 272: ret i8 %or # | next:653'0 ~~~~~~~~~~~~ # | 273: } # | next:653'0 ~~ # | 274: # | next:653'0 ~ # | 275: define i8 @rotateleft_8_neg_mask_wide_amount_commute(i8 %v, i32 %shamt) { # | next:653'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 276: %1 = trunc i32 %shamt to i8 # | next:670'0 X error: no match found # | next:670'1 with "TMP1" equal to "%1" # | 277: %lshamt = and i8 %1, 7 # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 278: %2 = trunc i32 %shamt to i8 # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 279: %3 = sub i8 0, %2 # | next:670'0 ~~~~~~~~~~~~~~~~~~~ # | 280: %rshamt = and i8 %3, 7 # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 281: %shl = shl i8 %v, %lshamt # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:670'2 ? possible intended match # | 282: %shr = lshr i8 %v, %rshamt # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 283: %or = or i8 %shl, %shr # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 284: ret i8 %or # | next:670'0 ~~~~~~~~~~~~ # | 285: } # | next:670'0 ~~ # | 286: # | next:670'0 ~ # | 287: define i64 @rotateleft_64_zext_neg_mask_amount(i64 %0, i32 %1) { # | next:670'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 288: %3 = zext i32 %1 to i64 # | 289: %4 = call i64 @llvm.fshl.i64(i64 %0, i64 %0, i64 %3) # | 290: ret i64 %4 # | 291: } # | 292: # | 293: define i9 @rotateleft_9_neg_mask_wide_amount_commute(i9 %v, i33 %shamt) { # | next:705'0 X~~~~~~~~~~~~~~~~~~~~ error: no match found # | 294: %1 = trunc i33 %shamt to i9 # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 295: %lshamt = and i9 %1, 8 # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 296: %2 = trunc i33 %shamt to i9 # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 297: %3 = sub i9 0, %2 # | next:705'0 ~~~~~~~~~~~~~~~~~~~ # | next:705'1 ? possible intended match # | 298: %rshamt = and i9 %3, 8 # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 299: %shl = shl i9 %v, %lshamt # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 300: %shr = lshr i9 %v, %rshamt # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 301: %or = or i9 %shl, %shr # | next:705'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 302: ret i9 %or # | next:705'0 ~~~~~~~~~~~~ # | . # | . # | . # | 389: } # | 390: # | 391: define i16 @check_rotate_masked_16bit(i8 %shamt, i32 %cond) { # | 392: %1 = trunc i32 %cond to i16 # | 393: %maskx = and i16 %1, 1 # | 394: %z = zext i8 %shamt to i16 # | next:966 !~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line # | 395: %or = call i16 @llvm.fshr.i16(i16 %maskx, i16 %maskx, i16 %z) # | 396: ret i16 %or # | 397: } # | 398: # | 399: define i32 @rotl_i32_add(i32 %x, i32 %y) { # | . # | . # | . # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/InstCombine/sadd_sat.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sadd_sat.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sadd_sat.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sadd_sat.ll' # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sadd_sat.ll:624:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[CONV:%.*]] = zext i32 [[A:%.*]] to i64 # | ^ # | <stdin>:259:7: note: scanning from here # | entry: # | ^ # | <stdin>:260:2: note: possible intended match here # | %add = add i32 %b, %a # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sadd_sat.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 254: %conv7 = trunc nsw i32 %spec.store.select8 to i8 # | 255: ret i8 %conv7 # | 256: } # | 257: # | 258: define i32 @sadd_sat32_zext(i32 %a, i32 %b) { # | 259: entry: # | next:624'0 X error: no match found # | 260: %add = add i32 %b, %a # | next:624'0 ~~~~~~~~~~~~~~~~~~~~~~~ # | next:624'1 ? possible intended match # | 261: %spec.store.select = call i32 @llvm.umin.i32(i32 %add, i32 2147483647) # | next:624'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 262: ret i32 %spec.store.select # | next:624'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 263: } # | next:624'0 ~~ # | 264: # | next:624'0 ~ # | 265: define i32 @sadd_sat32_maxmin(i32 %a, i32 %b) { # | next:624'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | . # | . # | . # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/InstCombine/sext-of-trunc-nsw.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll' # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:104:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M:%.*]] = and i32 [[X:%.*]], 7 # | ^ # | <stdin>:56:45: note: scanning from here # | define i64 @narrow_source_matching_signbits(i32 %x) { # | ^ # | <stdin>:58:2: note: possible intended match here # | %m = and i8 %1, 7 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:120:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M:%.*]] = and i32 [[X:%.*]], 8 # | ^ # | <stdin>:64:49: note: scanning from here # | define i64 @narrow_source_not_matching_signbits(i32 %x) { # | ^ # | <stdin>:66:2: note: possible intended match here # | %m = and i16 %1, 8 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:135:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M:%.*]] = and i32 [[X:%.*]], 7 # | ^ # | <stdin>:73:43: note: scanning from here # | define i24 @wide_source_matching_signbits(i32 %x) { # | ^ # | <stdin>:75:2: note: possible intended match here # | %m = and i8 %1, 7 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:162:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M2:%.*]] = and i32 [[X:%.*]], 8 # | ^ # | <stdin>:86:47: note: scanning from here # | define i24 @wide_source_not_matching_signbits(i32 %x) { # | ^ # | <stdin>:88:2: note: possible intended match here # | %m2 = and i16 %1, 8 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:177:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M:%.*]] = and i32 [[X:%.*]], 7 # | ^ # | <stdin>:95:43: note: scanning from here # | define i32 @same_source_matching_signbits(i32 %x) { # | ^ # | <stdin>:97:2: note: possible intended match here # | %m = and i8 %1, 7 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:192:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M2:%.*]] = and i32 [[X:%.*]], 8 # | ^ # | <stdin>:103:47: note: scanning from here # | define i32 @same_source_not_matching_signbits(i32 %x) { # | ^ # | <stdin>:105:2: note: possible intended match here # | %m2 = and i16 %1, 8 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:206:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M:%.*]] = and i32 [[X:%.*]], 7 # | ^ # | <stdin>:112:53: note: scanning from here # | define i32 @same_source_matching_signbits_extra_use(i32 %x) { # | ^ # | <stdin>:114:2: note: possible intended match here # | %m = and i8 %1, 7 # | ^ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll:222:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[M2:%.*]] = and i32 [[X:%.*]], 8 # | ^ # | <stdin>:121:57: note: scanning from here # | define i32 @same_source_not_matching_signbits_extra_use(i32 %x) { # | ^ # | <stdin>:123:2: note: possible intended match here # | %m2 = and i16 %1, 8 # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\sext-of-trunc-nsw.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 51: call void @use4(i4 %b) # | 52: %c = sext i8 %a to i16 # | 53: ret i16 %c # | 54: } # | 55: # | 56: define i64 @narrow_source_matching_signbits(i32 %x) { # | next:104'0 X~~~~~~~~~ error: no match found # | 57: %1 = trunc i32 %x to i8 # | next:104'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 58: %m = and i8 %1, 7 # | next:104'0 ~~~~~~~~~~~~~~~~~~~ # | next:104'1 ? possible intended match # | 59: %a = shl nsw i8 -1, %m # | next:104'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 60: %c = sext i8 %a to i64 # | next:104'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 61: ret i64 %c # | next:104'0 ~~~~~~~~~~~~ # | 62: } # | next:104'0 ~~ # | 63: # | next:104'0 ~ # | 64: define i64 @narrow_source_not_matching_signbits(i32 %x) { # | next:104'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:120'0 X~~~~~~~~~ error: no match found # | 65: %1 = trunc i32 %x to i16 # | next:120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 66: %m = and i16 %1, 8 # | next:120'0 ~~~~~~~~~~~~~~~~~~~~ # | next:120'1 ? possible intended match # | 67: %a = shl nsw i16 -1, %m # | next:120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 68: %b = trunc i16 %a to i8 # | next:120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 69: %c = sext i8 %b to i64 # | next:120'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 70: ret i64 %c # | next:120'0 ~~~~~~~~~~~~ # | 71: } # | next:120'0 ~~ # | 72: # | next:120'0 ~ # | 73: define i24 @wide_source_matching_signbits(i32 %x) { # | next:120'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:135'0 X~~~~~~~~~ error: no match found # | 74: %1 = trunc i32 %x to i8 # | next:135'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 75: %m = and i8 %1, 7 # | next:135'0 ~~~~~~~~~~~~~~~~~~~ # | next:135'1 ? possible intended match # | 76: %a = shl nsw i8 -1, %m # | next:135'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 77: %c = sext i8 %a to i24 # | next:135'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 78: ret i24 %c # | next:135'0 ~~~~~~~~~~~~ # | 79: } # | next:135'0 ~~ # | 80: # | next:135'0 ~ # | 81: define i32 @wide_source_matching_signbits_has_nsw_flag(i64 %i) { # | next:135'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 82: %b = trunc nsw i64 %i to i32 # | 83: ret i32 %b # | 84: } # | 85: # | 86: define i24 @wide_source_not_matching_signbits(i32 %x) { # | next:162'0 X~~~~~~~~~ error: no match found # | 87: %1 = trunc i32 %x to i16 # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 88: %m2 = and i16 %1, 8 # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~ # | next:162'1 ? possible intended match # | 89: %a = shl nsw i16 -1, %m2 # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 90: %b = trunc i16 %a to i8 # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 91: %c = sext i8 %b to i24 # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 92: ret i24 %c # | next:162'0 ~~~~~~~~~~~~ # | 93: } # | next:162'0 ~~ # | 94: # | next:162'0 ~ # | 95: define i32 @same_source_matching_signbits(i32 %x) { # | next:162'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:177'0 X~~~~~~~~~ error: no match found # | 96: %1 = trunc i32 %x to i8 # | next:177'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 97: %m = and i8 %1, 7 # | next:177'0 ~~~~~~~~~~~~~~~~~~~ # | next:177'1 ? possible intended match # | 98: %a = shl nsw i8 -1, %m # | next:177'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 99: %c = sext i8 %a to i32 # | next:177'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 100: ret i32 %c # | next:177'0 ~~~~~~~~~~~~ # | 101: } # | next:177'0 ~~ # | 102: # | next:177'0 ~ # | 103: define i32 @same_source_not_matching_signbits(i32 %x) { # | next:177'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:192'0 X~~~~~~~~~ error: no match found # | 104: %1 = trunc i32 %x to i16 # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 105: %m2 = and i16 %1, 8 # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~ # | next:192'1 ? possible intended match # | 106: %a = shl nsw i16 -1, %m2 # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 107: %b = trunc i16 %a to i8 # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 108: %c = sext i8 %b to i32 # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 109: ret i32 %c # | next:192'0 ~~~~~~~~~~~~ # | 110: } # | next:192'0 ~~ # | 111: # | next:192'0 ~ # | 112: define i32 @same_source_matching_signbits_extra_use(i32 %x) { # | next:192'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:206'0 X~~~~~~~~~ error: no match found # | 113: %1 = trunc i32 %x to i8 # | next:206'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 114: %m = and i8 %1, 7 # | next:206'0 ~~~~~~~~~~~~~~~~~~~ # | next:206'1 ? possible intended match # | 115: %a = shl nsw i8 -1, %m # | next:206'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 116: call void @use8(i8 %a) # | next:206'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 117: %c = sext i8 %a to i32 # | next:206'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 118: ret i32 %c # | next:206'0 ~~~~~~~~~~~~ # | 119: } # | next:206'0 ~~ # | 120: # | next:206'0 ~ # | 121: define i32 @same_source_not_matching_signbits_extra_use(i32 %x) { # | next:206'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:222'0 X~~~~~~~~~ error: no match found # | 122: %1 = trunc i32 %x to i16 # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 123: %m2 = and i16 %1, 8 # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~ # | next:222'1 ? possible intended match # | 124: %a = shl nsw i16 -1, %m2 # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 125: %b = trunc i16 %a to i8 # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ # | 126: call void @use8(i8 %b) # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 127: %c = sext i8 %b to i32 # | next:222'0 ~~~~~~~~~~~~~~~~~~~~~~~~ # | 128: ret i32 %c # | next:222'0 ~~~~~~~~~~~~ # | 129: } # | next:222'0 ~~ # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/InstCombine/shift.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\shift.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\shift.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\shift.ll' # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\shift.ll:580:15: error: CHECK-NEXT: expected string not found in input # | ; CHECK-NEXT: [[I22:%.*]] = zext i32 [[B:%.*]] to i128 # | ^ # | <stdin>:289:20: note: scanning from here # | define i64 @test37(i128 %A, i32 %B) { # | ^ # | <stdin>:291:2: note: possible intended match here # | %i22 = zext i32 %B to i64 # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\shift.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 284: %i231 = or i128 %B, %A # | 285: %ins = and i128 %i231, 18446744073709551615 # | 286: ret i128 %ins # | 287: } # | 288: # | 289: define i64 @test37(i128 %A, i32 %B) { # | next:580'0 X~~~~~~~~~~~~~~~~~~ error: no match found # | 290: %i27 = trunc i128 %A to i64 # | next:580'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 291: %i22 = zext i32 %B to i64 # | next:580'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | next:580'1 ? possible intended match # | 292: %i23 = shl nuw i64 %i22, 32 # | next:580'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 293: %ins = or i64 %i23, %i27 # | next:580'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ # | 294: ret i64 %ins # | next:580'0 ~~~~~~~~~~~~~~ # | 295: } # | next:580'0 ~~ # | 296: # | next:580'0 ~ # | . # | . # | . # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/InstCombine/trunc-binop-ext.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-binop-ext.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-binop-ext.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # .---command stderr------------ # | Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Support/Casting.h, line 572 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "narrow_sext_and" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799c14c11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c11) # | #6 0x00007ff799c14c93 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14c93) # | #7 0x00007ff799c17403 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd17403) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-binop-ext.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-binop-ext.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/trunc-inseltpoison.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-inseltpoison.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-inseltpoison.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "test1" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-inseltpoison.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc-inseltpoison.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/InstCombine/trunc.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc.ll -passes=instcombine -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=instcombine -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=instcombine -S # | 1.	Running pass "function(instcombine<max-iterations=1;verify-fixpoint>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;verify-fixpoint>" on function "test1" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\trunc.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/LoopVectorize/reduction-inloop-pred.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\reduction-inloop-pred.ll -passes=loop-vectorize,dce,instcombine -force-vector-interleave=1 -force-vector-width=4 -prefer-inloop-reductions -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\reduction-inloop-pred.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize,dce,instcombine -force-vector-interleave=1 -force-vector-width=4 -prefer-inloop-reductions -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S # note: command had no output on stdout or stderr # error: command failed with exit status: 0xc0000005 # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\reduction-inloop-pred.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\reduction-inloop-pred.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/PhaseOrdering/X86/pr52289.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe -O3 -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\pr52289.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\pr52289.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -O3 -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -O3 -S # | 1.	Running pass "require<globals-aa>,function(invalidate<aa>),require<profile-summary>,cgscc(devirt<4>(inline,function-attrs<skip-non-recursive-function-attrs>,argpromotion,openmp-opt-cgscc,function<eager-inv;no-rerun>(sroa<modify-cfg>,early-cse<memssa>,speculative-execution<only-if-divergent-target>,jump-threading,correlated-propagation,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,aggressive-instcombine,libcalls-shrinkwrap,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,reassociate,constraint-elimination,loop-mssa(loop-instsimplify,loop-simplifycfg,licm<no-allowspeculation>,loop-rotate<header-duplication;no-prepare-for-lto>,licm<allowspeculation>,simple-loop-unswitch<nontrivial;trivial>),simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,loop(loop-idiom,indvars,extra-simple-loop-unswitch-passes,loop-deletion,loop-unroll-full),sroa<modify-cfg>,vector-combine,mldst-motion<no-split-footer-bb>,gvn<>,sccp,bdce,instcombine<max-iterations=1;no-verify-fixpoint>,jump-threading,correlated-propagation,adce,memcpyopt,dse,move-auto-init,loop-mssa(licm<allowspeculation>),coro-elide,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;switch-to-arithmetic;no-switch-to-lookup;keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>),function-attrs,function(require<should-not-run-function-passes>),coro-split,coro-annotation-elide)),function(invalidate<should-not-run-function-passes>),cgscc(devirt<4>())" on module "<stdin>" # | 2.	Running pass "cgscc(devirt<4>(inline,function-attrs<skip-non-recursive-function-attrs>,argpromotion,openmp-opt-cgscc,function<eager-inv;no-rerun>(sroa<modify-cfg>,early-cse<memssa>,speculative-execution<only-if-divergent-target>,jump-threading,correlated-propagation,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,aggressive-instcombine,libcalls-shrinkwrap,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,reassociate,constraint-elimination,loop-mssa(loop-instsimplify,loop-simplifycfg,licm<no-allowspeculation>,loop-rotate<header-duplication;no-prepare-for-lto>,licm<allowspeculation>,simple-loop-unswitch<nontrivial;trivial>),simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,loop(loop-idiom,indvars,extra-simple-loop-unswitch-passes,loop-deletion,loop-unroll-full),sroa<modify-cfg>,vector-combine,mldst-motion<no-split-footer-bb>,gvn<>,sccp,bdce,instcombine<max-iterations=1;no-verify-fixpoint>,jump-threading,correlated-propagation,adce,memcpyopt,dse,move-auto-init,loop-mssa(licm<allowspeculation>),coro-elide,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;switch-to-arithmetic;no-switch-to-lookup;keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>),function-attrs,function(require<should-not-run-function-passes>),coro-split,coro-annotation-elide))" on module "<stdin>" # | 3.	Running pass "instcombine<max-iterations=1;no-verify-fixpoint>" on function "main" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799f52140 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1052140) # | #15 0x00007ff79934694b (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x44694b) # | #16 0x00007ff799f4d221 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x104d221) # | #17 0x00007ff799fa5a9b (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a5a9b) # | #18 0x00007ff799f503c5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10503c5) # | #19 0x00007ff79a041a8b (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1141a8b) # | #20 0x00007ff799f4ec49 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x104ec49) # | #21 0x00007ff79935bdf1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x45bdf1) # | #22 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #23 0x00007ff79b740664 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2840664) # | #24 0x00007ff799fa8891 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a8891) # | #25 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #26 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #27 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #28 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #29 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #30 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #31 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\pr52289.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\X86\pr52289.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/PhaseOrdering/bitfield-bittests.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe -O3 -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\bitfield-bittests.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\bitfield-bittests.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -O3 -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -O3 -S # | 1.	Running pass "function<eager-inv>(mem2reg,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;no-verify-fixpoint>" on function "allclear" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\bitfield-bittests.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\bitfield-bittests.ll # `----------------------------- # error: command failed with exit status: 2 -- 
LLVM.Transforms/PhaseOrdering/cmp-logic.ll
Exit Code: 1 Command Output (stdout): -- # RUN: at line 2 c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes='default<O1>' -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\cmp-logic.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\cmp-logic.ll --check-prefixes=CHECK,O1 # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O1>' -S # note: command had no output on stdout or stderr # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\cmp-logic.ll' --check-prefixes=CHECK,O1 # .---command stderr------------ # | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\cmp-logic.ll:113:12: error: O1-NEXT: is not on the line after the previous match # | ; O1-NEXT: [[CONV2:%.*]] = and i32 [[E_COERCE:%.*]], 255 # | ^ # | <stdin>:47:2: note: 'next' match was here # | %0 = and i32 %e.coerce.fr, 255 # | ^ # | <stdin>:45:7: note: previous match ended here # | entry: # | ^ # | <stdin>:46:1: note: non-matching line after previous match is here # | %e.coerce.fr = freeze i32 %e.coerce # | ^ # | # | Input file: <stdin> # | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\cmp-logic.ll # | # | -dump-input=help explains the following input dump. # | # | Input was: # | <<<<<< # | . # | . # | . # | 42: declare void @foo(...) local_unnamed_addr # | 43: # | 44: define i32 @PR56119(i32 %e.coerce) local_unnamed_addr { # | 45: entry: # | 46: %e.coerce.fr = freeze i32 %e.coerce # | 47: %0 = and i32 %e.coerce.fr, 255 # | next:113 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line # | 48: %cmp1 = icmp eq i32 %0, 7 # | 49: br i1 %cmp1, label %if.then, label %if.end # | 50: # | 51: if.then: ; preds = %entry # | 52: tail call void (...) @foo() # | . # | . # | . # | >>>>>> # `----------------------------- # error: command failed with exit status: 1 -- 
LLVM.Transforms/PhaseOrdering/reassociate-after-unroll.ll
Exit Code: 2 Command Output (stdout): -- # RUN: at line 3 c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes='default<O2>' -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\reassociate-after-unroll.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\reassociate-after-unroll.ll # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=default<O2>' -S # .---command stderr------------ # | Assertion failed: hiBit <= BitWidth && "hiBit out of range", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/APInt.h, line 1369 # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. # | Stack dump: # | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\opt.exe -passes=default<O2> -S # | 1.	Running pass "function<eager-inv>(mem2reg,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-arithmetic;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>)" on module "<stdin>" # | 2.	Running pass "instcombine<max-iterations=1;no-verify-fixpoint>" on function "func" # | Exception Code: 0xC000001D # | #0 0x00007ff7997fef06 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x8fef06) # | #1 0x00007ffc9205bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04) # | #2 0x00007ffc9205cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1) # | #3 0x00007ffc9205e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1) # | #4 0x00007ffc9205e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1) # | #5 0x00007ff799134a40 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x234a40) # | #6 0x00007ff799c14fe5 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd14fe5) # | #7 0x00007ff799c1a8c6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xd1a8c6) # | #8 0x00007ff79913c0ee (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23c0ee) # | #9 0x00007ff7991404a6 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x2404a6) # | #10 0x00007ff79913f8ef (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x23f8ef) # | #11 0x00007ff799fa60d1 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x10a60d1) # | #12 0x00007ff799d31a3d (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe31a3d) # | #13 0x00007ff799346d11 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x446d11) # | #14 0x00007ff799d34f36 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe34f36) # | #15 0x00007ff799233081 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x333081) # | #16 0x00007ff799d309bd (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0xe309bd) # | #17 0x00007ff79922cd7f (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x32cd7f) # | #18 0x00007ff798f06f77 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x6f77) # | #19 0x00007ff798f01025 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x1025) # | #20 0x00007ff79d6dccf4 (c:\_work\llvm-project\llvm-project\build\bin\opt.exe+0x47dccf4) # | #21 0x00007ffc966f4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0) # | #22 0x00007ffca4cfedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb) # `----------------------------- # error: command failed with exit status: 0xc000001d # executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\reassociate-after-unroll.ll' # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\PhaseOrdering\reassociate-after-unroll.ll # `----------------------------- # error: command failed with exit status: 2 -- 

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.

switch (I->getOpcode()) {
case Instruction::And: {
// And can be truncated if all the truncated bits are zero.
uint32_t OrigBitWidth = OrigTy->getScalarSizeInBits();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use unsigned to match the declared type of getScalarSizeInBits

break;
}
case Intrinsic::umin:
case Intrinsic::umax: {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no tests for umax

Copy link
Contributor

@nikic nikic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm confused by your and changes. and can be unconditionally truncated, why does it need special handling?

Conversely, umin/umax can not be unconditionally truncated, we need to be checking that the high bits are zero for those, which seems to be missing? Please provide alive2 proofs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

llvm:instcombine Covers the InstCombine, InstSimplify and AggressiveInstCombine passes llvm:transforms

4 participants