Test source: git
Source: <stdin> ---------------------------------------- define i1 @will_not_overflow(i64 %arg, i64 %arg1) { %bb: %t0 = icmp eq i64 %arg, 0 br i1 %t0, label %bb5, label %bb2 %bb2: %t3 = udiv i64 -1, %arg %t4 = icmp ult i64 %t3, %arg1 br label %bb5 %bb5: %t6 = phi i1 [ 0, %bb ], [ %t4, %bb2 ] ret i1 %t6 } => define i1 @will_not_overflow(i64 %arg, i64 %arg1) { %bb: %umul = umul_overflow {i64, i1, i56} %arg, %arg1 %umul.ov = extractvalue {i64, i1, i56} %umul, 1 ret i1 %umul.ov } Transformation doesn't verify! ERROR: Target is more poisonous than source Example: i64 %arg = #x0000000000000000 (0) i64 %arg1 = poison Source: i1 %t0 = #x1 (1) i64 %t3 = #xffffffffffffffff (18446744073709551615, -1) i1 %t4 = poison i1 %t6 = #x0 (0) Target: {i64, i1, i56} %umul = { poison, poison, poison } i1 %umul.ov = poison Source value: #x0 (0) Target value: poison ------------------- SMT STATS ------------------- Num queries: 2 Num invalid: 0 Num skips: 0 Num trivial: 1 (33.3%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 2 (100.0%) Num UNSAT: 0 (0.0%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -simplifycfg -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll --check-prefixes=ALL,SIMPLIFYCFG + : 'RUN: at line 3' + /home/nlopes/alive2/scripts/opt-alive.sh -instcombine -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll --check-prefixes=ALL,INSTCOMBINE,INSTCOMBINEONLY + : 'RUN: at line 4' + /home/nlopes/alive2/scripts/opt-alive.sh -instcombine -simplifycfg -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll --check-prefixes=ALL,INSTCOMBINE,INSTCOMBINESIMPLIFYCFG,INSTCOMBINESIMPLIFYCFGDEFAULT,INSTCOMBINESIMPLIFYCFGONLY + : 'RUN: at line 5' + /home/nlopes/alive2/scripts/opt-alive.sh -instcombine -simplifycfg -instcombine -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll --check-prefixes=ALL,INSTCOMBINE,INSTCOMBINESIMPLIFYCFG,INSTCOMBINESIMPLIFYCFGDEFAULT,INSTCOMBINESIMPLIFYCFGINSTCOMBINE Alive2: Transform doesn't verify; aborting! FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll --check-prefixes=ALL,INSTCOMBINE,INSTCOMBINESIMPLIFYCFG,INSTCOMBINESIMPLIFYCFGDEFAULT,INSTCOMBINESIMPLIFYCFGINSTCOMBINE