The only interesting test change is in @PR31262, where the following fold is now performed, while it previously was not: https://alive2.llvm.org/ce/z/a5Qmr6 llvm/test/Transforms/InstSimplify/ConstProp/gep.ll has not been updated, because there is a tradeoff between folding and inrange preservation there that we may want to discuss. Updates have been performed using: https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
29 lines
790 B
LLVM
29 lines
790 B
LLVM
; RUN: opt < %s -passes=instsimplify -disable-output
|
|
; PR2529
|
|
define <4 x i1> @test1(i32 %argc, ptr %argv) {
|
|
entry:
|
|
%foo = icmp slt <4 x i32> undef, <i32 14, i32 undef, i32 undef, i32 undef>
|
|
ret <4 x i1> %foo
|
|
}
|
|
|
|
define <4 x i1> @test2(i32 %argc, ptr %argv) {
|
|
entry:
|
|
%foo = icmp slt <4 x i32> <i32 undef, i32 undef, i32 undef, i32
|
|
undef>, <i32 undef, i32 undef, i32 undef, i32 undef>
|
|
ret <4 x i1> %foo
|
|
}
|
|
|
|
|
|
define <4 x i1> @test3() {
|
|
%foo = fcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float
|
|
undef>, <float 1.0, float 1.0, float 1.0, float undef>
|
|
ret <4 x i1> %foo
|
|
}
|
|
|
|
define <4 x i1> @test4() {
|
|
%foo = fcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float 0.0>, <float 1.0, float 1.0, float 1.0, float 0.0>
|
|
|
|
ret <4 x i1> %foo
|
|
}
|
|
|