Test source: git
Source: <stdin> ---------------------------------------- define <4 x i32> @test_v4i32_xor_repeated_and_0(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) { %0: %1 = and <4 x i32> %a, %b %2 = and <4 x i32> %a, %c %3 = xor <4 x i32> %1, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_xor_repeated_and_0(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) { %0: %1 = xor <4 x i32> %b, %c %2 = and <4 x i32> %1, %a ret <4 x i32> %2 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_xor_repeated_and_1(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) { %0: %1 = and <4 x i32> %a, %b %2 = and <4 x i32> %c, %a %3 = xor <4 x i32> %1, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_xor_repeated_and_1(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) { %0: %1 = xor <4 x i32> %b, %c %2 = and <4 x i32> %1, %a ret <4 x i32> %2 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_xor_bswap_splatconst(<4 x i32> %a0) { %0: %1 = bswap <4 x i32> %a0 %2 = xor <4 x i32> %1, { 255, 255, 255, 255 } ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_xor_bswap_splatconst(<4 x i32> %a0) { %0: %1 = xor <4 x i32> %a0, { 4278190080, 4278190080, 4278190080, 4278190080 } %2 = bswap <4 x i32> %1 ret <4 x i32> %2 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_xor_bswap_const(<4 x i32> %a0) { %0: %1 = bswap <4 x i32> %a0 %2 = xor <4 x i32> %1, { 0, 4278190080, 2, 3 } ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_xor_bswap_const(<4 x i32> %a0) { %0: %1 = bswap <4 x i32> %a0 %2 = xor <4 x i32> %1, { 0, 4278190080, 2, 3 } ret <4 x i32> %2 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_xor_bswap_const_undef(<4 x i32> %a0) { %0: %1 = bswap <4 x i32> %a0 %2 = xor <4 x i32> %1, { undef, 0, 2, 3 } ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_xor_bswap_const_undef(<4 x i32> %a0) { %0: %1 = bswap <4 x i32> %a0 %2 = xor <4 x i32> %1, { undef, 0, 2, 3 } ret <4 x i32> %2 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_demorgan_and(<4 x i32> %x, <4 x i32> %y) { %0: %1 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %x %2 = and <4 x i32> %1, %y %3 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_demorgan_and(<4 x i32> %x, <4 x i32> %y) { %0: %y.not = xor <4 x i32> %y, { 4294967295, 4294967295, 4294967295, 4294967295 } %1 = or <4 x i32> %y.not, %x ret <4 x i32> %1 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_demorgan_or(<4 x i32> %x, <4 x i32> %y) { %0: %1 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %x %2 = or <4 x i32> %1, %y %3 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_demorgan_or(<4 x i32> %x, <4 x i32> %y) { %0: %y.not = xor <4 x i32> %y, { 4294967295, 4294967295, 4294967295, 4294967295 } %1 = and <4 x i32> %y.not, %x ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_ashr_not(<4 x i32> %x, <4 x i32> %y) { %0: %1 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %x %2 = ashr <4 x i32> %1, %y %3 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_not_ashr_not(<4 x i32> %x, <4 x i32> %y) { %0: %1 = ashr <4 x i32> %x, %y ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_ashr_not_undef(<4 x i32> %x, <4 x i32> %y) { %0: %1 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, undef }, %x %2 = ashr <4 x i32> %1, %y %3 = xor <4 x i32> { 4294967295, 4294967295, undef, 4294967295 }, %2 ret <4 x i32> %3 } => define <4 x i32> @test_v4i32_not_ashr_not_undef(<4 x i32> %x, <4 x i32> %y) { %0: %1 = ashr <4 x i32> %x, %y ret <4 x i32> %1 } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <4 x i32> @test_v4i32_not_ashr_negative_splatconst(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967293, 4294967293, 4294967293, 4294967293 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_ashr_negative_splatconst(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 2, 2, 2, 2 }, %a0 ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_ashr_negative_const(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967293, 4294967291, 4294967289, 4294967287 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_ashr_negative_const(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 2, 4, 6, 8 }, %a0 ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_ashr_negative_const_undef(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967293, 4294967291, undef, 4294967287 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, undef }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_ashr_negative_const_undef(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 2, 4, 0, 8 }, %a0 ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_lshr_nonnegative_splatconst(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 3, 3, 3, 3 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_lshr_nonnegative_splatconst(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967292, 4294967292, 4294967292, 4294967292 }, %a0 ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_lshr_nonnegative_const(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 3, 5, 7, 9 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, 4294967295 }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_lshr_nonnegative_const(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967292, 4294967290, 4294967288, 4294967286 }, %a0 ret <4 x i32> %1 } Transformation seems to be correct! ---------------------------------------- define <4 x i32> @test_v4i32_not_lshr_nonnegative_const_undef(<4 x i32> %a0) { %0: %1 = lshr <4 x i32> { 3, 5, undef, 9 }, %a0 %2 = xor <4 x i32> { 4294967295, 4294967295, 4294967295, undef }, %1 ret <4 x i32> %2 } => define <4 x i32> @test_v4i32_not_lshr_nonnegative_const_undef(<4 x i32> %a0) { %0: %1 = ashr <4 x i32> { 4294967292, 4294967290, undef, 4294967286 }, %a0 ret <4 x i32> %1 } Transformation doesn't verify! ERROR: Value mismatch Example: <4 x i32> %a0 = < #x00000000 (0), #xfffffffe (4294967294, -2), #x0000001f (31), #xfffffffe (4294967294, -2) > Source: <4 x i32> %1 = < #x00000003 (3), poison, #x00000000 (0) [based on undef value], poison > <4 x i32> %2 = < #xfffffffc (4294967292, -4), poison, #xffffffff (4294967295, -1), poison > Target: <4 x i32> %1 = < #xfffffffc (4294967292, -4), poison, #x00000000 (0), poison > Source value: < #xfffffffc (4294967292, -4), poison, #xffffffff (4294967295, -1), poison > Target value: < #xfffffffc (4294967292, -4), poison, #x00000000 (0), poison > ------------------- SMT STATS ------------------- Num queries: 39 Num invalid: 0 Num skips: 0 Num trivial: 30 (43.5%) Num timeout: 6 (15.4%) Num errors: 0 (0.0%) Num SAT: 17 (43.6%) Num UNSAT: 16 (41.0%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -instcombine -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/vector-xor.ll 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/InstCombine/vector-xor.ll