Test source: git
Source: <stdin> ---------------------------------------- define double @main(i224 %#0) { entry: %x = sitofp i224 %#0 to double ret double %x } => define double @main(i224 %#0) { entryitofp-entry: %#1 = icmp eq i224 %#0, 0 br i1 %#1, label %itofp-return, label %itofp-if-end itofp-if-end: %#2 = ashr i224 %#0, 223 %#3 = xor i224 %#2, %#0 %#4 = sub i224 %#3, %#2 %#5 = ctlz i224 %#4, 1 %#6 = trunc i224 %#5 to i32 %#7 = sub i32 224, %#6 %#8 = sub i32 223, %#6 %#9 = icmp sgt i32 %#7, 53 br i1 %#9, label %itofp-if-then4, label %itofp-if-else itofp-if-then4: switch i32 %#7, label %itofp-sw-default [ i32 54, label %itofp-sw-bb i32 55, label %itofp-sw-epilog ] itofp-sw-default: %#10 = sub i32 169, %#6 %#11 = zext i32 %#10 to i224 %#12 = lshr i224 %#4, %#11 %#13 = add i32 %#6, 55 %#14 = zext i32 %#13 to i224 %#15 = lshr i224 26959946667150639794667015087019630673637144422540572481103610249215, %#14 %#16 = and i224 %#15, %#4 %#17 = icmp ne i224 %#16, 0 %#18 = zext i1 %#17 to i224 %#19 = or i224 %#12, %#18 br label %itofp-sw-epilog itofp-sw-bb: %#20 = shl i224 %#4, 1 br label %itofp-sw-epilog itofp-sw-epilog: %#21 = phi i224 [ %#19, %itofp-sw-default ], [ %#4, %itofp-if-then4 ], [ %#20, %itofp-sw-bb ] %#22 = trunc i224 %#21 to i32 %#23 = lshr i32 %#22, 2 %#24 = and i32 %#23, 1 %#25 = zext i32 %#24 to i224 %#26 = or i224 %#21, %#25 %#27 = add i224 %#26, 1 %#28 = ashr i224 %#27, 2 %a3 = and i224 %#27, 36028797018963968 %#29 = icmp eq i224 %a3, 0 %#30 = trunc i224 %#28 to i64 %#31 = lshr i224 %#28, 32 %#32 = trunc i224 %#31 to i32 br i1 %#29, label %itofp-if-end26, label %itofp-if-then20 itofp-if-then20: %#33 = ashr i224 %#27, 3 %#34 = trunc i224 %#33 to i64 %#35 = lshr i224 %#33, 32 %#36 = trunc i224 %#35 to i32 br label %itofp-if-end26 itofp-if-else: %#37 = add i32 %#6, 4294967125 %#38 = zext i32 %#37 to i224 %#39 = shl i224 %#4, %#38 %#40 = trunc i224 %#39 to i64 %#41 = lshr i224 %#39, 32 %#42 = trunc i224 %#41 to i32 br label %itofp-if-end26 itofp-if-end26: %#43 = phi i64 [ %#34, %itofp-if-then20 ], [ %#30, %itofp-sw-epilog ], [ %#40, %itofp-if-else ] %#44 = phi i32 [ %#36, %itofp-if-then20 ], [ %#32, %itofp-sw-epilog ], [ %#42, %itofp-if-else ] %#45 = phi i32 [ %#7, %itofp-if-then20 ], [ %#8, %itofp-sw-epilog ], [ %#8, %itofp-if-else ] %#46 = trunc i224 %#2 to i32 %#47 = and i32 %#46, 2147483648 %#48 = shl i32 %#45, 20 %#49 = add i32 %#48, 1072693248 %#50 = and i32 %#44, 1048575 %#51 = or i32 %#50, %#47 %#52 = or i32 %#51, %#49 %#53 = zext i32 %#52 to i64 %#54 = shl i64 %#53, 32 %#55 = and i64 %#43, 4294967295 %#56 = or i64 %#54, %#55 %#57 = bitcast i64 %#56 to double br label %itofp-return itofp-return: %#58 = phi double [ %#57, %itofp-if-end26 ], [ 0.000000, %entryitofp-entry ] ret double %#58 } Transformation doesn't verify! (unsound) ERROR: Source is more defined than target Example: i224 %#0 = poison Source: double %x = poison Target: i1 %#1 = poison UB triggered on br Pass: Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-tv' '-S' '-mtriple=x86_64--' '--expand-fp' '-tv' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' ------------------- SMT STATS ------------------- Num queries: 10 Num invalid: 0 Num skips: 0 Num trivial: 0 (0.0%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 10 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
Transforms/ExpandLargeFpConvert/X86/expand-large-fp-optnone.ll' FAILED ******************** Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 /home/nlopes/alive2/build/opt-alive.sh -S -mtriple=x86_64-- --expand-fp < /bitbucket/nlopes/llvm/llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-optnone.ll | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-optnone.ll # executed command: /home/nlopes/alive2/build/opt-alive.sh -S -mtriple=x86_64-- --expand-fp # .---command stderr------------ # `----------------------------- # error: command failed with exit status: 1 # executed command: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-optnone.ll # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-optnone.ll # `----------------------------- # error: command failed with exit status: 2 --