Test source: git
Comments: LLVM PR44185
Source: <stdin> -- 1. ModuleToFunctionPassAdaptor -- 1. PassManager<Function> : Skipping NOP -- 2. SLPVectorizerPass ---------------------------------------- define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %a0 = extractelement <2 x double> %a, i32 0 %a1 = extractelement <2 x double> %a, i32 1 %b0 = extractelement <2 x double> %b, i32 0 %b1 = extractelement <2 x double> %b, i32 1 %r0 = fadd double %a0, %a1, exceptions=ignore %r1 = fadd double %b0, %b1, exceptions=ignore %r00 = insertelement <2 x double> undef, double %r0, i32 0 %r01 = insertelement <2 x double> %r00, double %r1, i32 1 ret <2 x double> %r01 } Transformation seems to be correct! (syntactically equal) -- 3. SLPVectorizerPass ---------------------------------------- define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %a0 = extractelement <2 x double> %a, i32 0 %a1 = extractelement <2 x double> %a, i32 1 %b0 = extractelement <2 x double> %b, i32 0 %b1 = extractelement <2 x double> %b, i32 1 %r0 = fadd double %a0, %a1, exceptions=ignore %r1 = fadd double %b0, %b1, exceptions=ignore %r00 = insertelement <2 x double> undef, double %r0, i32 0 %r01 = insertelement <2 x double> %r00, double %r1, i32 1 ret <2 x double> %r01 } => define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %a0 = extractelement <2 x double> %a, i32 0 %a1 = extractelement <2 x double> %a, i32 1 %b0 = extractelement <2 x double> %b, i32 0 %b1 = extractelement <2 x double> %b, i32 1 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore ret <2 x double> %5 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 4. InstCombinePass ---------------------------------------- define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %a0 = extractelement <2 x double> %a, i32 0 %a1 = extractelement <2 x double> %a, i32 1 %b0 = extractelement <2 x double> %b, i32 0 %b1 = extractelement <2 x double> %b, i32 1 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore ret <2 x double> %5 } Transformation seems to be correct! (syntactically equal) -- 5. InstCombinePass ---------------------------------------- define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %a0 = extractelement <2 x double> %a, i32 0 %a1 = extractelement <2 x double> %a, i32 1 %b0 = extractelement <2 x double> %b, i32 0 %b1 = extractelement <2 x double> %b, i32 1 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore ret <2 x double> %5 } => define <2 x double> @test_v2f64(<2 x double> %a, <2 x double> %b) { %0: %1 = shufflevector <2 x double> %a, <2 x double> %b, 0, 2 %2 = shufflevector <2 x double> %a, <2 x double> %b, 1, 3 %3 = fadd <2 x double> %1, %2, exceptions=ignore ret <2 x double> %3 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 6. PassManager<Function> : Skipping NOP -- 7. PassManager<Function> : Skipping NOP -- 8. SLPVectorizerPass ---------------------------------------- define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %a0 = extractelement <4 x float> %a, i32 0 %a1 = extractelement <4 x float> %a, i32 1 %a2 = extractelement <4 x float> %a, i32 2 %a3 = extractelement <4 x float> %a, i32 3 %b0 = extractelement <4 x float> %b, i32 0 %b1 = extractelement <4 x float> %b, i32 1 %b2 = extractelement <4 x float> %b, i32 2 %b3 = extractelement <4 x float> %b, i32 3 %r0 = fadd float %a0, %a1, exceptions=ignore %r1 = fadd float %a2, %a3, exceptions=ignore %r2 = fadd float %b0, %b1, exceptions=ignore %r3 = fadd float %b2, %b3, exceptions=ignore %r00 = insertelement <4 x float> undef, float %r0, i32 0 %r01 = insertelement <4 x float> %r00, float %r1, i32 1 %r02 = insertelement <4 x float> %r01, float %r2, i32 2 %r03 = insertelement <4 x float> %r02, float %r3, i32 3 ret <4 x float> %r03 } Transformation seems to be correct! (syntactically equal) -- 9. SLPVectorizerPass ---------------------------------------- define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %a0 = extractelement <4 x float> %a, i32 0 %a1 = extractelement <4 x float> %a, i32 1 %a2 = extractelement <4 x float> %a, i32 2 %a3 = extractelement <4 x float> %a, i32 3 %b0 = extractelement <4 x float> %b, i32 0 %b1 = extractelement <4 x float> %b, i32 1 %b2 = extractelement <4 x float> %b, i32 2 %b3 = extractelement <4 x float> %b, i32 3 %r0 = fadd float %a0, %a1, exceptions=ignore %r1 = fadd float %a2, %a3, exceptions=ignore %r2 = fadd float %b0, %b1, exceptions=ignore %r3 = fadd float %b2, %b3, exceptions=ignore %r00 = insertelement <4 x float> undef, float %r0, i32 0 %r01 = insertelement <4 x float> %r00, float %r1, i32 1 %r02 = insertelement <4 x float> %r01, float %r2, i32 2 %r03 = insertelement <4 x float> %r02, float %r3, i32 3 ret <4 x float> %r03 } => define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %a0 = extractelement <4 x float> %a, i32 0 %a1 = extractelement <4 x float> %a, i32 1 %a2 = extractelement <4 x float> %a, i32 2 %a3 = extractelement <4 x float> %a, i32 3 %b0 = extractelement <4 x float> %b, i32 0 %b1 = extractelement <4 x float> %b, i32 1 %b2 = extractelement <4 x float> %b, i32 2 %b3 = extractelement <4 x float> %b, i32 3 %1 = insertelement <4 x float> poison, float %a0, i32 0 %2 = insertelement <4 x float> %1, float %a2, i32 1 %3 = insertelement <4 x float> %2, float %b0, i32 2 %4 = insertelement <4 x float> %3, float %b2, i32 3 %5 = insertelement <4 x float> poison, float %a1, i32 0 %6 = insertelement <4 x float> %5, float %a3, i32 1 %7 = insertelement <4 x float> %6, float %b1, i32 2 %8 = insertelement <4 x float> %7, float %b3, i32 3 %9 = fadd <4 x float> %4, %8, exceptions=ignore ret <4 x float> %9 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 10. InstCombinePass ---------------------------------------- define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %a0 = extractelement <4 x float> %a, i32 0 %a1 = extractelement <4 x float> %a, i32 1 %a2 = extractelement <4 x float> %a, i32 2 %a3 = extractelement <4 x float> %a, i32 3 %b0 = extractelement <4 x float> %b, i32 0 %b1 = extractelement <4 x float> %b, i32 1 %b2 = extractelement <4 x float> %b, i32 2 %b3 = extractelement <4 x float> %b, i32 3 %1 = insertelement <4 x float> poison, float %a0, i32 0 %2 = insertelement <4 x float> %1, float %a2, i32 1 %3 = insertelement <4 x float> %2, float %b0, i32 2 %4 = insertelement <4 x float> %3, float %b2, i32 3 %5 = insertelement <4 x float> poison, float %a1, i32 0 %6 = insertelement <4 x float> %5, float %a3, i32 1 %7 = insertelement <4 x float> %6, float %b1, i32 2 %8 = insertelement <4 x float> %7, float %b3, i32 3 %9 = fadd <4 x float> %4, %8, exceptions=ignore ret <4 x float> %9 } Transformation seems to be correct! (syntactically equal) -- 11. InstCombinePass ---------------------------------------- define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %a0 = extractelement <4 x float> %a, i32 0 %a1 = extractelement <4 x float> %a, i32 1 %a2 = extractelement <4 x float> %a, i32 2 %a3 = extractelement <4 x float> %a, i32 3 %b0 = extractelement <4 x float> %b, i32 0 %b1 = extractelement <4 x float> %b, i32 1 %b2 = extractelement <4 x float> %b, i32 2 %b3 = extractelement <4 x float> %b, i32 3 %1 = insertelement <4 x float> poison, float %a0, i32 0 %2 = insertelement <4 x float> %1, float %a2, i32 1 %3 = insertelement <4 x float> %2, float %b0, i32 2 %4 = insertelement <4 x float> %3, float %b2, i32 3 %5 = insertelement <4 x float> poison, float %a1, i32 0 %6 = insertelement <4 x float> %5, float %a3, i32 1 %7 = insertelement <4 x float> %6, float %b1, i32 2 %8 = insertelement <4 x float> %7, float %b3, i32 3 %9 = fadd <4 x float> %4, %8, exceptions=ignore ret <4 x float> %9 } => define <4 x float> @test_v4f32(<4 x float> %a, <4 x float> %b) { %0: %1 = shufflevector <4 x float> %a, <4 x float> %b, 0, 2, 4, 6 %2 = shufflevector <4 x float> %a, <4 x float> %b, 1, 3, 5, 7 %3 = fadd <4 x float> %1, %2, exceptions=ignore ret <4 x float> %3 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 12. PassManager<Function> : Skipping NOP -- 13. PassManager<Function> : Skipping NOP -- 14. SLPVectorizerPass ---------------------------------------- define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %a0 = extractelement <2 x i64> %a, i32 0 %a1 = extractelement <2 x i64> %a, i32 1 %b0 = extractelement <2 x i64> %b, i32 0 %b1 = extractelement <2 x i64> %b, i32 1 %r0 = add i64 %a0, %a1 %r1 = add i64 %b0, %b1 %r00 = insertelement <2 x i64> undef, i64 %r0, i32 0 %r01 = insertelement <2 x i64> %r00, i64 %r1, i32 1 ret <2 x i64> %r01 } Transformation seems to be correct! (syntactically equal) -- 15. SLPVectorizerPass ---------------------------------------- define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %a0 = extractelement <2 x i64> %a, i32 0 %a1 = extractelement <2 x i64> %a, i32 1 %b0 = extractelement <2 x i64> %b, i32 0 %b1 = extractelement <2 x i64> %b, i32 1 %r0 = add i64 %a0, %a1 %r1 = add i64 %b0, %b1 %r00 = insertelement <2 x i64> undef, i64 %r0, i32 0 %r01 = insertelement <2 x i64> %r00, i64 %r1, i32 1 ret <2 x i64> %r01 } => define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %a0 = extractelement <2 x i64> %a, i32 0 %a1 = extractelement <2 x i64> %a, i32 1 %b0 = extractelement <2 x i64> %b, i32 0 %b1 = extractelement <2 x i64> %b, i32 1 %1 = insertelement <2 x i64> poison, i64 %a0, i32 0 %2 = insertelement <2 x i64> %1, i64 %b0, i32 1 %3 = insertelement <2 x i64> poison, i64 %a1, i32 0 %4 = insertelement <2 x i64> %3, i64 %b1, i32 1 %5 = add <2 x i64> %2, %4 ret <2 x i64> %5 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 16. InstCombinePass ---------------------------------------- define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %a0 = extractelement <2 x i64> %a, i32 0 %a1 = extractelement <2 x i64> %a, i32 1 %b0 = extractelement <2 x i64> %b, i32 0 %b1 = extractelement <2 x i64> %b, i32 1 %1 = insertelement <2 x i64> poison, i64 %a0, i32 0 %2 = insertelement <2 x i64> %1, i64 %b0, i32 1 %3 = insertelement <2 x i64> poison, i64 %a1, i32 0 %4 = insertelement <2 x i64> %3, i64 %b1, i32 1 %5 = add <2 x i64> %2, %4 ret <2 x i64> %5 } Transformation seems to be correct! (syntactically equal) -- 17. InstCombinePass ---------------------------------------- define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %a0 = extractelement <2 x i64> %a, i32 0 %a1 = extractelement <2 x i64> %a, i32 1 %b0 = extractelement <2 x i64> %b, i32 0 %b1 = extractelement <2 x i64> %b, i32 1 %1 = insertelement <2 x i64> poison, i64 %a0, i32 0 %2 = insertelement <2 x i64> %1, i64 %b0, i32 1 %3 = insertelement <2 x i64> poison, i64 %a1, i32 0 %4 = insertelement <2 x i64> %3, i64 %b1, i32 1 %5 = add <2 x i64> %2, %4 ret <2 x i64> %5 } => define <2 x i64> @test_v2i64(<2 x i64> %a, <2 x i64> %b) { %0: %1 = shufflevector <2 x i64> %a, <2 x i64> %b, 0, 2 %2 = shufflevector <2 x i64> %a, <2 x i64> %b, 1, 3 %3 = add <2 x i64> %1, %2 ret <2 x i64> %3 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 18. PassManager<Function> : Skipping NOP -- 19. PassManager<Function> : Skipping NOP -- 20. SLPVectorizerPass ---------------------------------------- define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %a0 = extractelement <4 x i32> %a, i32 0 %a1 = extractelement <4 x i32> %a, i32 1 %a2 = extractelement <4 x i32> %a, i32 2 %a3 = extractelement <4 x i32> %a, i32 3 %b0 = extractelement <4 x i32> %b, i32 0 %b1 = extractelement <4 x i32> %b, i32 1 %b2 = extractelement <4 x i32> %b, i32 2 %b3 = extractelement <4 x i32> %b, i32 3 %r0 = add i32 %a0, %a1 %r1 = add i32 %a2, %a3 %r2 = add i32 %b0, %b1 %r3 = add i32 %b2, %b3 %r00 = insertelement <4 x i32> undef, i32 %r0, i32 0 %r01 = insertelement <4 x i32> %r00, i32 %r1, i32 1 %r02 = insertelement <4 x i32> %r01, i32 %r2, i32 2 %r03 = insertelement <4 x i32> %r02, i32 %r3, i32 3 ret <4 x i32> %r03 } Transformation seems to be correct! (syntactically equal) -- 21. SLPVectorizerPass ---------------------------------------- define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %a0 = extractelement <4 x i32> %a, i32 0 %a1 = extractelement <4 x i32> %a, i32 1 %a2 = extractelement <4 x i32> %a, i32 2 %a3 = extractelement <4 x i32> %a, i32 3 %b0 = extractelement <4 x i32> %b, i32 0 %b1 = extractelement <4 x i32> %b, i32 1 %b2 = extractelement <4 x i32> %b, i32 2 %b3 = extractelement <4 x i32> %b, i32 3 %r0 = add i32 %a0, %a1 %r1 = add i32 %a2, %a3 %r2 = add i32 %b0, %b1 %r3 = add i32 %b2, %b3 %r00 = insertelement <4 x i32> undef, i32 %r0, i32 0 %r01 = insertelement <4 x i32> %r00, i32 %r1, i32 1 %r02 = insertelement <4 x i32> %r01, i32 %r2, i32 2 %r03 = insertelement <4 x i32> %r02, i32 %r3, i32 3 ret <4 x i32> %r03 } => define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %a0 = extractelement <4 x i32> %a, i32 0 %a1 = extractelement <4 x i32> %a, i32 1 %a2 = extractelement <4 x i32> %a, i32 2 %a3 = extractelement <4 x i32> %a, i32 3 %b0 = extractelement <4 x i32> %b, i32 0 %b1 = extractelement <4 x i32> %b, i32 1 %b2 = extractelement <4 x i32> %b, i32 2 %b3 = extractelement <4 x i32> %b, i32 3 %1 = insertelement <4 x i32> poison, i32 %a0, i32 0 %2 = insertelement <4 x i32> %1, i32 %a2, i32 1 %3 = insertelement <4 x i32> %2, i32 %b0, i32 2 %4 = insertelement <4 x i32> %3, i32 %b2, i32 3 %5 = insertelement <4 x i32> poison, i32 %a1, i32 0 %6 = insertelement <4 x i32> %5, i32 %a3, i32 1 %7 = insertelement <4 x i32> %6, i32 %b1, i32 2 %8 = insertelement <4 x i32> %7, i32 %b3, i32 3 %9 = add <4 x i32> %4, %8 ret <4 x i32> %9 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 22. InstCombinePass ---------------------------------------- define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %a0 = extractelement <4 x i32> %a, i32 0 %a1 = extractelement <4 x i32> %a, i32 1 %a2 = extractelement <4 x i32> %a, i32 2 %a3 = extractelement <4 x i32> %a, i32 3 %b0 = extractelement <4 x i32> %b, i32 0 %b1 = extractelement <4 x i32> %b, i32 1 %b2 = extractelement <4 x i32> %b, i32 2 %b3 = extractelement <4 x i32> %b, i32 3 %1 = insertelement <4 x i32> poison, i32 %a0, i32 0 %2 = insertelement <4 x i32> %1, i32 %a2, i32 1 %3 = insertelement <4 x i32> %2, i32 %b0, i32 2 %4 = insertelement <4 x i32> %3, i32 %b2, i32 3 %5 = insertelement <4 x i32> poison, i32 %a1, i32 0 %6 = insertelement <4 x i32> %5, i32 %a3, i32 1 %7 = insertelement <4 x i32> %6, i32 %b1, i32 2 %8 = insertelement <4 x i32> %7, i32 %b3, i32 3 %9 = add <4 x i32> %4, %8 ret <4 x i32> %9 } Transformation seems to be correct! (syntactically equal) -- 23. InstCombinePass ---------------------------------------- define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %a0 = extractelement <4 x i32> %a, i32 0 %a1 = extractelement <4 x i32> %a, i32 1 %a2 = extractelement <4 x i32> %a, i32 2 %a3 = extractelement <4 x i32> %a, i32 3 %b0 = extractelement <4 x i32> %b, i32 0 %b1 = extractelement <4 x i32> %b, i32 1 %b2 = extractelement <4 x i32> %b, i32 2 %b3 = extractelement <4 x i32> %b, i32 3 %1 = insertelement <4 x i32> poison, i32 %a0, i32 0 %2 = insertelement <4 x i32> %1, i32 %a2, i32 1 %3 = insertelement <4 x i32> %2, i32 %b0, i32 2 %4 = insertelement <4 x i32> %3, i32 %b2, i32 3 %5 = insertelement <4 x i32> poison, i32 %a1, i32 0 %6 = insertelement <4 x i32> %5, i32 %a3, i32 1 %7 = insertelement <4 x i32> %6, i32 %b1, i32 2 %8 = insertelement <4 x i32> %7, i32 %b3, i32 3 %9 = add <4 x i32> %4, %8 ret <4 x i32> %9 } => define <4 x i32> @test_v4i32(<4 x i32> %a, <4 x i32> %b) { %0: %1 = shufflevector <4 x i32> %a, <4 x i32> %b, 0, 2, 4, 6 %2 = shufflevector <4 x i32> %a, <4 x i32> %b, 1, 3, 5, 7 %3 = add <4 x i32> %1, %2 ret <4 x i32> %3 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 24. PassManager<Function> : Skipping NOP -- 25. PassManager<Function> : Skipping NOP -- 26. SLPVectorizerPass ---------------------------------------- define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %a0 = extractelement <8 x i16> %a, i32 0 %a1 = extractelement <8 x i16> %a, i32 1 %a2 = extractelement <8 x i16> %a, i32 2 %a3 = extractelement <8 x i16> %a, i32 3 %a4 = extractelement <8 x i16> %a, i32 4 %a5 = extractelement <8 x i16> %a, i32 5 %a6 = extractelement <8 x i16> %a, i32 6 %a7 = extractelement <8 x i16> %a, i32 7 %b0 = extractelement <8 x i16> %b, i32 0 %b1 = extractelement <8 x i16> %b, i32 1 %b2 = extractelement <8 x i16> %b, i32 2 %b3 = extractelement <8 x i16> %b, i32 3 %b4 = extractelement <8 x i16> %b, i32 4 %b5 = extractelement <8 x i16> %b, i32 5 %b6 = extractelement <8 x i16> %b, i32 6 %b7 = extractelement <8 x i16> %b, i32 7 %r0 = add i16 %a0, %a1 %r1 = add i16 %a2, %a3 %r2 = add i16 %a4, %a5 %r3 = add i16 %a6, %a7 %r4 = add i16 %b0, %b1 %r5 = add i16 %b2, %b3 %r6 = add i16 %b4, %b5 %r7 = add i16 %b6, %b7 %r00 = insertelement <8 x i16> undef, i16 %r0, i32 0 %r01 = insertelement <8 x i16> %r00, i16 %r1, i32 1 %r02 = insertelement <8 x i16> %r01, i16 %r2, i32 2 %r03 = insertelement <8 x i16> %r02, i16 %r3, i32 3 %r04 = insertelement <8 x i16> %r03, i16 %r4, i32 4 %r05 = insertelement <8 x i16> %r04, i16 %r5, i32 5 %r06 = insertelement <8 x i16> %r05, i16 %r6, i32 6 %r07 = insertelement <8 x i16> %r06, i16 %r7, i32 7 ret <8 x i16> %r07 } Transformation seems to be correct! (syntactically equal) -- 27. SLPVectorizerPass ---------------------------------------- define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %a0 = extractelement <8 x i16> %a, i32 0 %a1 = extractelement <8 x i16> %a, i32 1 %a2 = extractelement <8 x i16> %a, i32 2 %a3 = extractelement <8 x i16> %a, i32 3 %a4 = extractelement <8 x i16> %a, i32 4 %a5 = extractelement <8 x i16> %a, i32 5 %a6 = extractelement <8 x i16> %a, i32 6 %a7 = extractelement <8 x i16> %a, i32 7 %b0 = extractelement <8 x i16> %b, i32 0 %b1 = extractelement <8 x i16> %b, i32 1 %b2 = extractelement <8 x i16> %b, i32 2 %b3 = extractelement <8 x i16> %b, i32 3 %b4 = extractelement <8 x i16> %b, i32 4 %b5 = extractelement <8 x i16> %b, i32 5 %b6 = extractelement <8 x i16> %b, i32 6 %b7 = extractelement <8 x i16> %b, i32 7 %r0 = add i16 %a0, %a1 %r1 = add i16 %a2, %a3 %r2 = add i16 %a4, %a5 %r3 = add i16 %a6, %a7 %r4 = add i16 %b0, %b1 %r5 = add i16 %b2, %b3 %r6 = add i16 %b4, %b5 %r7 = add i16 %b6, %b7 %r00 = insertelement <8 x i16> undef, i16 %r0, i32 0 %r01 = insertelement <8 x i16> %r00, i16 %r1, i32 1 %r02 = insertelement <8 x i16> %r01, i16 %r2, i32 2 %r03 = insertelement <8 x i16> %r02, i16 %r3, i32 3 %r04 = insertelement <8 x i16> %r03, i16 %r4, i32 4 %r05 = insertelement <8 x i16> %r04, i16 %r5, i32 5 %r06 = insertelement <8 x i16> %r05, i16 %r6, i32 6 %r07 = insertelement <8 x i16> %r06, i16 %r7, i32 7 ret <8 x i16> %r07 } => define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %a0 = extractelement <8 x i16> %a, i32 0 %a1 = extractelement <8 x i16> %a, i32 1 %a2 = extractelement <8 x i16> %a, i32 2 %a3 = extractelement <8 x i16> %a, i32 3 %a4 = extractelement <8 x i16> %a, i32 4 %a5 = extractelement <8 x i16> %a, i32 5 %a6 = extractelement <8 x i16> %a, i32 6 %a7 = extractelement <8 x i16> %a, i32 7 %b0 = extractelement <8 x i16> %b, i32 0 %b1 = extractelement <8 x i16> %b, i32 1 %b2 = extractelement <8 x i16> %b, i32 2 %b3 = extractelement <8 x i16> %b, i32 3 %b4 = extractelement <8 x i16> %b, i32 4 %b5 = extractelement <8 x i16> %b, i32 5 %b6 = extractelement <8 x i16> %b, i32 6 %b7 = extractelement <8 x i16> %b, i32 7 %1 = insertelement <8 x i16> poison, i16 %a0, i32 0 %2 = insertelement <8 x i16> %1, i16 %a2, i32 1 %3 = insertelement <8 x i16> %2, i16 %a4, i32 2 %4 = insertelement <8 x i16> %3, i16 %a6, i32 3 %5 = insertelement <8 x i16> %4, i16 %b0, i32 4 %6 = insertelement <8 x i16> %5, i16 %b2, i32 5 %7 = insertelement <8 x i16> %6, i16 %b4, i32 6 %8 = insertelement <8 x i16> %7, i16 %b6, i32 7 %9 = insertelement <8 x i16> poison, i16 %a1, i32 0 %10 = insertelement <8 x i16> %9, i16 %a3, i32 1 %11 = insertelement <8 x i16> %10, i16 %a5, i32 2 %12 = insertelement <8 x i16> %11, i16 %a7, i32 3 %13 = insertelement <8 x i16> %12, i16 %b1, i32 4 %14 = insertelement <8 x i16> %13, i16 %b3, i32 5 %15 = insertelement <8 x i16> %14, i16 %b5, i32 6 %16 = insertelement <8 x i16> %15, i16 %b7, i32 7 %17 = add <8 x i16> %8, %16 ret <8 x i16> %17 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 28. InstCombinePass ---------------------------------------- define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %a0 = extractelement <8 x i16> %a, i32 0 %a1 = extractelement <8 x i16> %a, i32 1 %a2 = extractelement <8 x i16> %a, i32 2 %a3 = extractelement <8 x i16> %a, i32 3 %a4 = extractelement <8 x i16> %a, i32 4 %a5 = extractelement <8 x i16> %a, i32 5 %a6 = extractelement <8 x i16> %a, i32 6 %a7 = extractelement <8 x i16> %a, i32 7 %b0 = extractelement <8 x i16> %b, i32 0 %b1 = extractelement <8 x i16> %b, i32 1 %b2 = extractelement <8 x i16> %b, i32 2 %b3 = extractelement <8 x i16> %b, i32 3 %b4 = extractelement <8 x i16> %b, i32 4 %b5 = extractelement <8 x i16> %b, i32 5 %b6 = extractelement <8 x i16> %b, i32 6 %b7 = extractelement <8 x i16> %b, i32 7 %1 = insertelement <8 x i16> poison, i16 %a0, i32 0 %2 = insertelement <8 x i16> %1, i16 %a2, i32 1 %3 = insertelement <8 x i16> %2, i16 %a4, i32 2 %4 = insertelement <8 x i16> %3, i16 %a6, i32 3 %5 = insertelement <8 x i16> %4, i16 %b0, i32 4 %6 = insertelement <8 x i16> %5, i16 %b2, i32 5 %7 = insertelement <8 x i16> %6, i16 %b4, i32 6 %8 = insertelement <8 x i16> %7, i16 %b6, i32 7 %9 = insertelement <8 x i16> poison, i16 %a1, i32 0 %10 = insertelement <8 x i16> %9, i16 %a3, i32 1 %11 = insertelement <8 x i16> %10, i16 %a5, i32 2 %12 = insertelement <8 x i16> %11, i16 %a7, i32 3 %13 = insertelement <8 x i16> %12, i16 %b1, i32 4 %14 = insertelement <8 x i16> %13, i16 %b3, i32 5 %15 = insertelement <8 x i16> %14, i16 %b5, i32 6 %16 = insertelement <8 x i16> %15, i16 %b7, i32 7 %17 = add <8 x i16> %8, %16 ret <8 x i16> %17 } Transformation seems to be correct! (syntactically equal) -- 29. InstCombinePass ---------------------------------------- define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %a0 = extractelement <8 x i16> %a, i32 0 %a1 = extractelement <8 x i16> %a, i32 1 %a2 = extractelement <8 x i16> %a, i32 2 %a3 = extractelement <8 x i16> %a, i32 3 %a4 = extractelement <8 x i16> %a, i32 4 %a5 = extractelement <8 x i16> %a, i32 5 %a6 = extractelement <8 x i16> %a, i32 6 %a7 = extractelement <8 x i16> %a, i32 7 %b0 = extractelement <8 x i16> %b, i32 0 %b1 = extractelement <8 x i16> %b, i32 1 %b2 = extractelement <8 x i16> %b, i32 2 %b3 = extractelement <8 x i16> %b, i32 3 %b4 = extractelement <8 x i16> %b, i32 4 %b5 = extractelement <8 x i16> %b, i32 5 %b6 = extractelement <8 x i16> %b, i32 6 %b7 = extractelement <8 x i16> %b, i32 7 %1 = insertelement <8 x i16> poison, i16 %a0, i32 0 %2 = insertelement <8 x i16> %1, i16 %a2, i32 1 %3 = insertelement <8 x i16> %2, i16 %a4, i32 2 %4 = insertelement <8 x i16> %3, i16 %a6, i32 3 %5 = insertelement <8 x i16> %4, i16 %b0, i32 4 %6 = insertelement <8 x i16> %5, i16 %b2, i32 5 %7 = insertelement <8 x i16> %6, i16 %b4, i32 6 %8 = insertelement <8 x i16> %7, i16 %b6, i32 7 %9 = insertelement <8 x i16> poison, i16 %a1, i32 0 %10 = insertelement <8 x i16> %9, i16 %a3, i32 1 %11 = insertelement <8 x i16> %10, i16 %a5, i32 2 %12 = insertelement <8 x i16> %11, i16 %a7, i32 3 %13 = insertelement <8 x i16> %12, i16 %b1, i32 4 %14 = insertelement <8 x i16> %13, i16 %b3, i32 5 %15 = insertelement <8 x i16> %14, i16 %b5, i32 6 %16 = insertelement <8 x i16> %15, i16 %b7, i32 7 %17 = add <8 x i16> %8, %16 ret <8 x i16> %17 } => define <8 x i16> @test_v8i16(<8 x i16> %a, <8 x i16> %b) { %0: %1 = shufflevector <8 x i16> %a, <8 x i16> %b, 0, 2, 4, 6, 8, 10, 12, 14 %2 = shufflevector <8 x i16> %a, <8 x i16> %b, 1, 3, 5, 7, 9, 11, 13, 15 %3 = add <8 x i16> %1, %2 ret <8 x i16> %3 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 30. PassManager<Function> : Skipping NOP -- 31. PassManager<Function> : Skipping NOP -- 32. SLPVectorizerPass ---------------------------------------- define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %x0 = extractelement <4 x float> %f, i64 0 %x1 = extractelement <4 x float> %f, i64 1 %add01 = fadd float %x0, %x1, exceptions=ignore store float %add01, ptr %p, align 4 %x2 = extractelement <4 x float> %f, i64 2 %x3 = extractelement <4 x float> %f, i64 3 %add23 = fadd float %x2, %x3, exceptions=ignore %p23 = gep inbounds ptr %p, 4 x i64 1 store float %add23, ptr %p23, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 33. SLPVectorizerPass ---------------------------------------- define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %x0 = extractelement <4 x float> %f, i64 0 %x1 = extractelement <4 x float> %f, i64 1 %add01 = fadd float %x0, %x1, exceptions=ignore store float %add01, ptr %p, align 4 %x2 = extractelement <4 x float> %f, i64 2 %x3 = extractelement <4 x float> %f, i64 3 %add23 = fadd float %x2, %x3, exceptions=ignore %p23 = gep inbounds ptr %p, 4 x i64 1 store float %add23, ptr %p23, align 4 ret void } => define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %x0 = extractelement <4 x float> %f, i64 0 %x1 = extractelement <4 x float> %f, i64 1 %x2 = extractelement <4 x float> %f, i64 2 %x3 = extractelement <4 x float> %f, i64 3 %1 = insertelement <2 x float> poison, float %x1, i32 0 %2 = insertelement <2 x float> %1, float %x2, i32 1 %3 = insertelement <2 x float> poison, float %x0, i32 0 %4 = insertelement <2 x float> %3, float %x3, i32 1 %5 = fadd <2 x float> %2, %4, exceptions=ignore %6 = bitcast ptr %p to ptr store <2 x float> %5, ptr %6, align 4 ret void } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 34. InstCombinePass ---------------------------------------- define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %x0 = extractelement <4 x float> %f, i64 0 %x1 = extractelement <4 x float> %f, i64 1 %x2 = extractelement <4 x float> %f, i64 2 %x3 = extractelement <4 x float> %f, i64 3 %1 = insertelement <2 x float> poison, float %x1, i32 0 %2 = insertelement <2 x float> %1, float %x2, i32 1 %3 = insertelement <2 x float> poison, float %x0, i32 0 %4 = insertelement <2 x float> %3, float %x3, i32 1 %5 = fadd <2 x float> %2, %4, exceptions=ignore %6 = bitcast ptr %p to ptr store <2 x float> %5, ptr %6, align 4 ret void } Transformation seems to be correct! (syntactically equal) -- 35. InstCombinePass ---------------------------------------- define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %x0 = extractelement <4 x float> %f, i64 0 %x1 = extractelement <4 x float> %f, i64 1 %x2 = extractelement <4 x float> %f, i64 2 %x3 = extractelement <4 x float> %f, i64 3 %1 = insertelement <2 x float> poison, float %x1, i32 0 %2 = insertelement <2 x float> %1, float %x2, i32 1 %3 = insertelement <2 x float> poison, float %x0, i32 0 %4 = insertelement <2 x float> %3, float %x3, i32 1 %5 = fadd <2 x float> %2, %4, exceptions=ignore %6 = bitcast ptr %p to ptr store <2 x float> %5, ptr %6, align 4 ret void } => define void @test_v4f32_v2f32_store(<4 x float> %f, ptr %p) { %0: %1 = shufflevector <4 x float> %f, <4 x float> undef, 1, 2 %2 = shufflevector <4 x float> %f, <4 x float> undef, 0, 3 %3 = fadd <2 x float> %1, %2, exceptions=ignore %4 = bitcast ptr %p to ptr store <2 x float> %3, ptr %4, align 4 ret void } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 36. PassManager<Function> : Skipping NOP -- 37. PassManager<Function> : Skipping NOP -- 38. SLPVectorizerPass ---------------------------------------- define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i32 0 %a1 = extractelement <4 x double> %a, i32 1 %a2 = extractelement <4 x double> %a, i32 2 %a3 = extractelement <4 x double> %a, i32 3 %b0 = extractelement <4 x double> %b, i32 0 %b1 = extractelement <4 x double> %b, i32 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %r0 = fadd double %a0, %a1, exceptions=ignore %r1 = fadd double %b0, %b1, exceptions=ignore %r2 = fadd double %a2, %a3, exceptions=ignore %r3 = fadd double %b2, %b3, exceptions=ignore %r00 = insertelement <4 x double> undef, double %r0, i32 0 %r01 = insertelement <4 x double> %r00, double %r1, i32 1 %r02 = insertelement <4 x double> %r01, double %r2, i32 2 %r03 = insertelement <4 x double> %r02, double %r3, i32 3 ret <4 x double> %r03 } Transformation seems to be correct! (syntactically equal) -- 39. SLPVectorizerPass ---------------------------------------- define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i32 0 %a1 = extractelement <4 x double> %a, i32 1 %a2 = extractelement <4 x double> %a, i32 2 %a3 = extractelement <4 x double> %a, i32 3 %b0 = extractelement <4 x double> %b, i32 0 %b1 = extractelement <4 x double> %b, i32 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %r0 = fadd double %a0, %a1, exceptions=ignore %r1 = fadd double %b0, %b1, exceptions=ignore %r2 = fadd double %a2, %a3, exceptions=ignore %r3 = fadd double %b2, %b3, exceptions=ignore %r00 = insertelement <4 x double> undef, double %r0, i32 0 %r01 = insertelement <4 x double> %r00, double %r1, i32 1 %r02 = insertelement <4 x double> %r01, double %r2, i32 2 %r03 = insertelement <4 x double> %r02, double %r3, i32 3 ret <4 x double> %r03 } => define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i32 0 %a1 = extractelement <4 x double> %a, i32 1 %a2 = extractelement <4 x double> %a, i32 2 %a3 = extractelement <4 x double> %a, i32 3 %b0 = extractelement <4 x double> %b, i32 0 %b1 = extractelement <4 x double> %b, i32 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore %6 = insertelement <2 x double> poison, double %a2, i32 0 %7 = insertelement <2 x double> %6, double %b2, i32 1 %8 = insertelement <2 x double> poison, double %a3, i32 0 %9 = insertelement <2 x double> %8, double %b3, i32 1 %10 = fadd <2 x double> %7, %9, exceptions=ignore %11 = shufflevector <2 x double> %5, <2 x double> poison, 0, 1, 4294967295, 4294967295 %12 = shufflevector <2 x double> %10, <2 x double> poison, 0, 1, 4294967295, 4294967295 %r031 = shufflevector <4 x double> %11, <4 x double> %12, 0, 1, 4, 5 ret <4 x double> %r031 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 40. InstCombinePass ---------------------------------------- define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i32 0 %a1 = extractelement <4 x double> %a, i32 1 %a2 = extractelement <4 x double> %a, i32 2 %a3 = extractelement <4 x double> %a, i32 3 %b0 = extractelement <4 x double> %b, i32 0 %b1 = extractelement <4 x double> %b, i32 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore %6 = insertelement <2 x double> poison, double %a2, i32 0 %7 = insertelement <2 x double> %6, double %b2, i32 1 %8 = insertelement <2 x double> poison, double %a3, i32 0 %9 = insertelement <2 x double> %8, double %b3, i32 1 %10 = fadd <2 x double> %7, %9, exceptions=ignore %11 = shufflevector <2 x double> %5, <2 x double> poison, 0, 1, 4294967295, 4294967295 %12 = shufflevector <2 x double> %10, <2 x double> poison, 0, 1, 4294967295, 4294967295 %r031 = shufflevector <4 x double> %11, <4 x double> %12, 0, 1, 4, 5 ret <4 x double> %r031 } Transformation seems to be correct! (syntactically equal) -- 41. InstCombinePass ---------------------------------------- define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i32 0 %a1 = extractelement <4 x double> %a, i32 1 %a2 = extractelement <4 x double> %a, i32 2 %a3 = extractelement <4 x double> %a, i32 3 %b0 = extractelement <4 x double> %b, i32 0 %b1 = extractelement <4 x double> %b, i32 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore %6 = insertelement <2 x double> poison, double %a2, i32 0 %7 = insertelement <2 x double> %6, double %b2, i32 1 %8 = insertelement <2 x double> poison, double %a3, i32 0 %9 = insertelement <2 x double> %8, double %b3, i32 1 %10 = fadd <2 x double> %7, %9, exceptions=ignore %11 = shufflevector <2 x double> %5, <2 x double> poison, 0, 1, 4294967295, 4294967295 %12 = shufflevector <2 x double> %10, <2 x double> poison, 0, 1, 4294967295, 4294967295 %r031 = shufflevector <4 x double> %11, <4 x double> %12, 0, 1, 4, 5 ret <4 x double> %r031 } => define <4 x double> @test_v4f64(<4 x double> %a, <4 x double> %b) { %0: %1 = shufflevector <4 x double> %a, <4 x double> %b, 0, 4 %2 = shufflevector <4 x double> %a, <4 x double> %b, 1, 5 %3 = fadd <2 x double> %1, %2, exceptions=ignore %4 = shufflevector <4 x double> %a, <4 x double> %b, 2, 6 %5 = shufflevector <4 x double> %a, <4 x double> %b, 3, 7 %6 = fadd <2 x double> %4, %5, exceptions=ignore %r031 = shufflevector <2 x double> %3, <2 x double> %6, 0, 1, 2, 3 ret <4 x double> %r031 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 42. PassManager<Function> : Skipping NOP -- 43. PassManager<Function> : Skipping NOP -- 44. SLPVectorizerPass ---------------------------------------- define <4 x double> @test_v4f64_partial_swizzle(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i64 0 %a1 = extractelement <4 x double> %a, i64 1 %b0 = extractelement <4 x double> %b, i64 0 %b1 = extractelement <4 x double> %b, i64 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %r0 = fadd double %a0, %a1, exceptions=ignore %r2 = fadd double %b0, %b1, exceptions=ignore %r3 = fadd double %b2, %b3, exceptions=ignore %r00 = insertelement <4 x double> undef, double %r0, i32 0 %r02 = insertelement <4 x double> %r00, double %r2, i32 2 %r03 = insertelement <4 x double> %r02, double %r3, i32 3 ret <4 x double> %r03 } Transformation seems to be correct! (syntactically equal) -- 45. SLPVectorizerPass ---------------------------------------- define <4 x double> @test_v4f64_partial_swizzle(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i64 0 %a1 = extractelement <4 x double> %a, i64 1 %b0 = extractelement <4 x double> %b, i64 0 %b1 = extractelement <4 x double> %b, i64 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %r0 = fadd double %a0, %a1, exceptions=ignore %r2 = fadd double %b0, %b1, exceptions=ignore %r3 = fadd double %b2, %b3, exceptions=ignore %r00 = insertelement <4 x double> undef, double %r0, i32 0 %r02 = insertelement <4 x double> %r00, double %r2, i32 2 %r03 = insertelement <4 x double> %r02, double %r3, i32 3 ret <4 x double> %r03 } => define <4 x double> @test_v4f64_partial_swizzle(<4 x double> %a, <4 x double> %b) { %0: %a0 = extractelement <4 x double> %a, i64 0 %a1 = extractelement <4 x double> %a, i64 1 %b0 = extractelement <4 x double> %b, i64 0 %b1 = extractelement <4 x double> %b, i64 1 %b2 = extractelement <4 x double> %b, i32 2 %b3 = extractelement <4 x double> %b, i32 3 %1 = insertelement <2 x double> poison, double %a0, i32 0 %2 = insertelement <2 x double> %1, double %b0, i32 1 %3 = insertelement <2 x double> poison, double %a1, i32 0 %4 = insertelement <2 x double> %3, double %b1, i32 1 %5 = fadd <2 x double> %2, %4, exceptions=ignore %r3 = fadd double %b2, %b3, exceptions=ignore %6 = shufflevector <2 x double> %5, <2 x double> poison, 0, 4294967295, 1, 4294967295 %r03 = insertelement <4 x double> %6, double %r3, i32 3 ret <4 x double> %r03 } Transformation doesn't verify! (unsound) ERROR: Target is more poisonous than source Example: <4 x double> %a = < poison, poison, poison, poison > <4 x double> %b = < poison, poison, poison, poison > Source: double %a0 = poison double %a1 = poison double %b0 = poison double %b1 = poison double %b2 = poison double %b3 = poison double %r0 = poison double %r2 = poison double %r3 = poison <4 x double> %r00 = < poison, #x0000000000000000 (+0.0) [based on undef value], #x0000000000000000 (+0.0), #x0000000000000000 (+0.0) > <4 x double> %r02 = < poison, #x0000000000000000 (+0.0), poison, #x0000000000000000 (+0.0) > <4 x double> %r03 = < poison, #x0000000000000000 (+0.0), poison, poison > Target: double %a0 = poison double %a1 = poison double %b0 = poison double %b1 = poison double %b2 = poison double %b3 = poison <2 x double> %1 = < poison, poison > <2 x double> %2 = < poison, poison > <2 x double> %3 = < poison, poison > <2 x double> %4 = < poison, poison > <2 x double> %5 = < poison, poison > double %r3 = poison <4 x double> %6 = < poison, poison, poison, poison > <4 x double> %r03 = < poison, poison, poison, poison > Source value: < poison, #x0000000000000000 (+0.0), poison, poison > Target value: < poison, poison, poison, poison > Pass: SLPVectorizerPass Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-mtriple=x86_64-unknown' '-passes=slp-vectorizer,instcombine' '-S' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' ------------------- SMT STATS ------------------- Num queries: 129 Num invalid: 0 Num skips: 0 Num trivial: 41 (24.1%) Num timeout: 14 (10.9%) Num errors: 0 (0.0%) Num SAT: 95 (73.6%) Num UNSAT: 20 (15.5%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 2' + /home/nlopes/alive2/build/opt-alive.sh -mtriple=x86_64-unknown -passes=slp-vectorizer,instcombine -S + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/hadd.ll --check-prefix=CHECK --check-prefix=SSE FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/hadd.ll --check-prefix=CHECK --check-prefix=SSE