add more bug reproducers
ADD
tests/alive-tv/bugs/D98759.srctgt.ll
+; Reported by https://reviews.llvm.org/D90529#2619492
+
+define i32 @src(i32* nocapture %a) nounwind uwtable readonly {
+entry:
+ tail call void @llvm.assume(i1 true) ["align"(i32* %a, i32 32, i32 28)]
+ %arrayidx = getelementptr inbounds i32, i32* %a, i64 -1
+ %.0 = load i32, i32* %arrayidx, align 4
+ ret i32 %.0
+}
+
+define i32 @tgt(i32* nocapture %a) nounwind uwtable readonly {
+entry:
+ tail call void @llvm.assume(i1 true) ["align"(i32* %a, i32 32, i32 28)]
+ %arrayidx = getelementptr inbounds i32, i32* %a, i64 -1
+ %.0 = load i32, i32* %arrayidx, align 32
+ ret i32 %.0
+}
+
+declare void @llvm.assume(i1)
+
+; ERROR: Source is more defined than target

ADD
tests/alive-tv/bugs/pr48353.srctgt.ll
+define i32 @src(i32 %aj) {
+ %cmp.i = icmp sgt i32 %aj, 1
+ %aj.op = lshr i32 3, %aj
+ %.op2 = and i32 %aj.op, 1
+ %cmp41 = icmp ne i32 %.op2, 0
+ %cmp4 = select i1 %cmp.i, i1 1, i1 %cmp41
+ %conv5 = zext i1 %cmp4 to i32
+ ret i32 %conv5
+}
+define i32 @tgt(i32 %aj) {
+ %cmp.i = icmp sgt i32 %aj, 1
+ %aj.op = lshr i32 3, %aj
+ %.op2 = and i32 %aj.op, 1
+ %cmp41 = icmp ne i32 %.op2, 0
+ %cmp4 = or i1 %cmp.i, %cmp41
+ %conv5 = zext i1 %cmp4 to i32
+ ret i32 %conv5
+}
+
+; ERROR: Target is more poisonous than source

ADD
tests/alive-tv/bugs/pr49495.srctgt.ll
+define i1 @src(i8* %a, i8* %b) {
+ %cond1 = icmp ne i8* %a, %b
+ %a2 = getelementptr inbounds i8, i8* %a, i64 -1
+ %cond2 = icmp ugt i8* %a2, %b
+ %res = select i1 %cond1, i1 %cond2, i1 false
+ ret i1 %res
+}
+
+define i1 @tgt(i8* %a, i8* %b) {
+ %a2 = getelementptr inbounds i8, i8* %a, i64 -1
+ %cond2 = icmp ugt i8* %a2, %b
+ ret i1 %cond2
+}
+
+; ERROR: Target is more poisonous than source

ADD
tests/alive-tv/bugs/pr49688.srctgt.ll
+define dso_local signext i32 @src(i32 signext %g, i32 zeroext %h) {
+entry:
+ %cmp = icmp slt i32 %g, 0
+ %shr = ashr i32 7, %h
+ %cmp1 = icmp sgt i32 %g, %shr
+ %0 = select i1 %cmp, i1 true, i1 %cmp1
+ %lor.ext = zext i1 %0 to i32
+ ret i32 %lor.ext
+}
+
+define dso_local signext i32 @tgt(i32 signext %g, i32 zeroext %h) {
+entry:
+ %shr = lshr i32 7, %h
+ %0 = icmp ult i32 %shr, %g
+ %lor.ext = zext i1 %0 to i32
+ ret i32 %lor.ext
+}
+
+; ERROR: Target is more poisonous than source

ADD
tests/alive-tv/bugs/pr49832.srctgt.ll
+define void @src(<2 x i32> %input) { ; <1, 0>
+ %cond = icmp eq <2 x i32> %input, zeroinitializer
+ %.14 = extractelement <2 x i32> %input, i32 1
+ %.15 = insertelement <2 x i32> poison, i32 %.14, i32 0
+ %.16 = extractelement <2 x i32> %input, i32 0
+ %.17 = insertelement <2 x i32> %.15, i32 %.16, i32 1
+ %.18 = select <2 x i1> %cond, <2 x i32> %.17, <2 x i32> %input
+ %x = extractelement <2 x i32> %.18, i32 0
+ %y = extractelement <2 x i32> %.18, i32 1
+ call void @f(i32 %x, i32 %y)
+ ret void
+}
+
+define void @tgt(<2 x i32> %input) { ; <1, 0>
+ %x = extractelement <2 x i32> %input, i32 0
+ %y = extractelement <2 x i32> %input, i32 1
+ call void @f(i32 %x, i32 %y)
+ ret void
+}
+
+declare void @f(i32, i32)
+
+; ERROR: Source is more defined than target

add more bug reproducers (#704)