Test source: git
Source: <stdin> ERROR: Unsupported instruction: %__constexpr_1 = ptrtoint i32 (i32*)* @vec_store_load_first to i64 ERROR: Unsupported instruction: %__constexpr_0 = bitcast i64 ptrtoint (i32 (i32*)* @vec_store_load_first to i64) to <2 x i32> ERROR: Unsupported instruction: store <2 x i32> bitcast (i64 ptrtoint (i32 (i32*)* @vec_store_load_first to i64) to <2 x i32>), <2 x i32>* %p2, align 8 ---------------------------------------- define i8 @load_smaller_int(* %p) { %0: store i16 258, * %p, align 2 %p2 = bitcast * %p to * %load = load i8, * %p2, align 1 ret i8 %load } => define i8 @load_smaller_int(* %p) { %0: store i16 258, * %p, align 2 %p2 = bitcast * %p to * %load = load i8, * %p2, align 1 ret i8 %load } Transformation seems to be correct! (syntactically equal) ---------------------------------------- define i32 @vec_store_load_first(* %p) { %0: %p2 = bitcast * %p to * store <2 x i32> { 1, 2 }, * %p2, align 8 %load = load i32, * %p, align 4 ret i32 %load } => define i32 @vec_store_load_first(* %p) { %0: %p2 = bitcast * %p to * store <2 x i32> { 1, 2 }, * %p2, align 8 ret i32 1 } Transformation seems to be correct! ---------------------------------------- define i17 @vec_store_load_first_odd_size(* %p) { %0: %p2 = bitcast * %p to * store <2 x i17> { 1, 2 }, * %p2, align 8 %load = load i17, * %p, align 4 ret i17 %load } => define i17 @vec_store_load_first_odd_size(* %p) { %0: %p2 = bitcast * %p to * store <2 x i17> { 1, 2 }, * %p2, align 8 ret i17 1 } Transformation doesn't verify! ERROR: Value mismatch Example: * %p = pointer(non-local, block_id=1, offset=0) Source: * %p2 = pointer(non-local, block_id=1, offset=0) i17 %load = #x00002 (2) SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 Block 1 > size: 8 align: 16 alloc type: 0 Target: * %p2 = pointer(non-local, block_id=1, offset=0) Source value: #x00002 (2) Target value: #x00001 (1) ------------------- SMT STATS ------------------- Num queries: 6 Num invalid: 0 Num skips: 0 Num trivial: 13 (68.4%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 3 (50.0%) Num UNSAT: 3 (50.0%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 2' + /home/nlopes/alive2/build/opt-alive.sh -S -instcombine + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/load-store-forward.ll --check-prefixes=CHECK,LITTLE + : 'RUN: at line 3' + /home/nlopes/alive2/build/opt-alive.sh -S -instcombine -data-layout=E + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/load-store-forward.ll --check-prefixes=CHECK,BIG FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/load-store-forward.ll --check-prefixes=CHECK,BIG