[llvm] r347845 - [NFC] Add two XFAIL tests from PR39783
Max Kazantsev via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 29 01:38:22 PST 2018
Author: mkazantsev
Date: Thu Nov 29 01:38:22 2018
New Revision: 347845
URL: http://llvm.org/viewvc/llvm-project?rev=347845&view=rev
Log:
[NFC] Add two XFAIL tests from PR39783
Added:
llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_1.ll
llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_2.ll
Added: llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_1.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_1.ll?rev=347845&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_1.ll (added)
+++ llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_1.ll Thu Nov 29 01:38:22 2018
@@ -0,0 +1,134 @@
+; XFAIL: *
+; RUN: opt -march=z13 -S -O3 -enable-simple-loop-unswitch -enable-mssa-loop-dependency -enable-loop-simplifycfg-term-folding 2>&1 < %s | FileCheck %s
+; CHECK-LABEL: @main(
+
+target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
+
+ at g_45 = external dso_local global i8, align 2
+ at g_182 = external dso_local global i32, align 4
+ at g_277 = external dso_local global i32, align 4
+ at g_1135 = external dso_local global i16, align 2
+ at g_2998 = external dso_local global i32, align 4
+
+; Function Attrs: nounwind
+define dso_local signext i32 @main(i32 signext %arg, i8** %arg1) #0 {
+bb:
+ %tmp = call signext i32 @0()
+ unreachable
+}
+
+; Function Attrs: nounwind
+define internal signext i32 @0() #0 {
+bb:
+ %tmp = call signext i32 @1(i32 zeroext 0, i64 undef)
+ ret i32 undef
+}
+
+; Function Attrs: nounwind
+define internal signext i32 @1(i32 zeroext %arg, i64 %arg1) #0 {
+bb:
+ %tmp = alloca i32, align 4
+ %tmp2 = alloca i32, align 4
+ store i32 %arg, i32* %tmp, align 4, !tbaa !1
+ br label %bb3
+
+bb3: ; preds = %bb42, %bb
+ store i32 48, i32* %tmp2, align 4
+ %tmp4 = load i32, i32* %tmp2, align 4
+ %tmp5 = icmp eq i32 %tmp4, 48
+ br i1 %tmp5, label %bb6, label %bb42
+
+bb6: ; preds = %bb9, %bb3
+ %tmp7 = load i32, i32* @g_277, align 4, !tbaa !1
+ %tmp8 = icmp ule i32 %tmp7, 0
+ br i1 %tmp8, label %bb9, label %bb16
+
+bb9: ; preds = %bb15, %bb6
+ %tmp10 = icmp sle i32 0, 5
+ %tmp11 = load i32, i32* %tmp, align 4, !tbaa !1
+ br i1 %tmp10, label %bb12, label %bb6
+
+bb12: ; preds = %bb9
+ %tmp13 = icmp ne i32 %tmp11, 0
+ br i1 %tmp13, label %bb15, label %bb14
+
+bb14: ; preds = %bb12
+ store i16 0, i16* @g_1135, align 2, !tbaa !5
+ br label %bb15
+
+bb15: ; preds = %bb14, %bb12
+ br label %bb9
+
+bb16: ; preds = %bb20, %bb6
+ %tmp17 = load i32, i32* %tmp, align 4, !tbaa !1
+ %tmp18 = icmp ule i32 %tmp17, 0
+ br i1 %tmp18, label %bb19, label %bb22
+
+bb19: ; preds = %bb19, %bb16
+ br i1 undef, label %bb19, label %bb20
+
+bb20: ; preds = %bb19
+ %tmp21 = add i32 0, 1
+ store i32 %tmp21, i32* %tmp, align 4, !tbaa !1
+ br label %bb16
+
+bb22: ; preds = %bb40, %bb16
+ %tmp23 = load i32, i32* @g_277, align 4, !tbaa !1
+ %tmp24 = icmp ule i32 %tmp23, 5
+ br i1 %tmp24, label %bb25, label %bb42
+
+bb25: ; preds = %bb22
+ store i32 0, i32* @g_182, align 4, !tbaa !1
+ br label %bb26
+
+bb26: ; preds = %bb29, %bb25
+ %tmp27 = load i32, i32* @g_182, align 4, !tbaa !1
+ %tmp28 = icmp ule i32 %tmp27, 0
+ br i1 %tmp28, label %bb29, label %bb31
+
+bb29: ; preds = %bb26
+ %tmp30 = load i32*, i32** undef, align 8, !tbaa !7
+ br i1 undef, label %bb26, label %bb40
+
+bb31: ; preds = %bb35, %bb26
+ %tmp32 = load i32, i32* @g_2998, align 4, !tbaa !1
+ %tmp33 = icmp sle i32 %tmp32, 5
+ br i1 %tmp33, label %bb34, label %bb39
+
+bb34: ; preds = %bb34, %bb31
+ br i1 undef, label %bb34, label %bb35
+
+bb35: ; preds = %bb35, %bb34
+ %tmp36 = load i8, i8* @g_45, align 2, !tbaa !9
+ %tmp37 = zext i8 %tmp36 to i32
+ %tmp38 = icmp sle i32 %tmp37, 5
+ br i1 %tmp38, label %bb35, label %bb31
+
+bb39: ; preds = %bb31
+ store i32 0, i32* %tmp2, align 4
+ br label %bb40
+
+bb40: ; preds = %bb39, %bb29
+ %tmp41 = icmp eq i32 0, 0
+ br i1 %tmp41, label %bb22, label %bb42
+
+bb42: ; preds = %bb40, %bb22, %bb3
+ %tmp43 = load i32, i32* %tmp2, align 4
+ %tmp44 = icmp eq i32 %tmp43, 0
+ br i1 %tmp44, label %bb3, label %bb45
+
+bb45: ; preds = %bb42
+ ret i32 undef
+}
+
+attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
+
+!1 = !{!2, !2, i64 0}
+!2 = !{!"int", !3, i64 0}
+!3 = !{!"omnipotent char", !4, i64 0}
+!4 = !{!"Simple C/C++ TBAA"}
+!5 = !{!6, !6, i64 0}
+!6 = !{!"short", !3, i64 0}
+!7 = !{!8, !8, i64 0}
+!8 = !{!"any pointer", !3, i64 0}
+!9 = !{!3, !3, i64 0}
Added: llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_2.ll?rev=347845&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_2.ll (added)
+++ llvm/trunk/test/Transforms/LoopSimplifyCFG/pr39783_2.ll Thu Nov 29 01:38:22 2018
@@ -0,0 +1,145 @@
+; XFAIL: *
+; RUN: opt -S -march=z13 -O3 -enable-simple-loop-unswitch -enable-mssa-loop-dependency -enable-loop-simplifycfg-term-folding 2>&1 < %s | FileCheck %s
+; CHECK-LABEL: @safe_sub_func_uint64_t_u_u(
+
+target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
+
+ at g_57 = external dso_local global i16, align 2
+
+; Function Attrs: nounwind
+define dso_local void @main() #0 {
+bb:
+ call void @func_1()
+ unreachable
+}
+
+; Function Attrs: nounwind
+define dso_local void @func_1() #0 {
+bb:
+ call void @func_25()
+ unreachable
+}
+
+; Function Attrs: nounwind
+declare dso_local void @safe_lshift_func_int16_t_s_u() #0
+
+; Function Attrs: nounwind
+declare dso_local void @safe_mul_func_int8_t_s_s() #0
+
+; Function Attrs: nounwind
+define dso_local void @func_25() #0 {
+bb:
+ call void @func_50()
+ unreachable
+}
+
+; Function Attrs: nounwind
+define dso_local void @func_50() #0 {
+bb:
+ call void @func_76(i8 signext undef)
+ unreachable
+}
+
+; Function Attrs: nounwind
+define dso_local void @safe_lshift_func_uint8_t_u_u() #0 {
+bb:
+ ret void
+}
+
+; Function Attrs: nounwind
+declare dso_local i64 @safe_sub_func_uint64_t_u_u() #0
+
+; Function Attrs: nounwind
+declare dso_local void @safe_mod_func_uint64_t_u_u() #0
+
+; Function Attrs: nounwind
+define dso_local void @func_76(i8 signext %arg) #0 {
+bb:
+ %tmp = alloca i8, align 1
+ %tmp1 = alloca i32, align 4
+ %tmp2 = alloca i32, align 4
+ store i8 %arg, i8* %tmp, align 1, !tbaa !1
+ br label %bb3
+
+bb3: ; preds = %bb29, %bb
+ br label %bb4
+
+bb4: ; preds = %bb28, %bb3
+ %tmp5 = load i16, i16* @g_57, align 2, !tbaa !4
+ %tmp6 = zext i16 %tmp5 to i32
+ %tmp7 = icmp sgt i32 %tmp6, 56
+ br i1 %tmp7, label %bb8, label %bb29
+
+bb8: ; preds = %bb4
+ %tmp9 = call i64 @safe_sub_func_uint64_t_u_u()
+ %tmp10 = icmp ne i64 %tmp9, 0
+ br i1 %tmp10, label %bb11, label %bb25
+
+bb11: ; preds = %bb8
+ store i32 26, i32* %tmp1, align 4, !tbaa !6
+ br label %bb12
+
+bb12: ; preds = %bb15, %bb11
+ %tmp13 = load i32, i32* %tmp1, align 4, !tbaa !6
+ %tmp14 = icmp ne i32 %tmp13, 12
+ br i1 %tmp14, label %bb15, label %bb18
+
+bb15: ; preds = %bb12
+ store i8 -23, i8* %tmp, align 1, !tbaa !1
+ call void @safe_mod_func_uint64_t_u_u()
+ %tmp16 = load i32, i32* %tmp1, align 4, !tbaa !6
+ %tmp17 = add nsw i32 %tmp16, -1
+ store i32 %tmp17, i32* %tmp1, align 4, !tbaa !6
+ br label %bb12
+
+bb18: ; preds = %bb12
+ %tmp19 = load i8, i8* %tmp, align 1, !tbaa !1
+ %tmp20 = icmp ne i8 %tmp19, 0
+ br i1 %tmp20, label %bb21, label %bb22
+
+bb21: ; preds = %bb18
+ store i32 7, i32* %tmp2, align 4
+ br label %bb22
+
+bb22: ; preds = %bb21, %bb18
+ %tmp23 = load i32, i32* %tmp2, align 4
+ %tmp24 = icmp eq i32 %tmp23, 0
+ br i1 %tmp24, label %bb26, label %bb27
+
+bb25: ; preds = %bb8
+ call void @safe_lshift_func_int16_t_s_u()
+ store i32 0, i32* %tmp2, align 4
+ switch i32 undef, label %bb30 [
+ i32 0, label %bb26
+ i32 7, label %bb28
+ ]
+
+bb26: ; preds = %bb25, %bb22
+ call void @safe_mul_func_int8_t_s_s()
+ br label %bb27
+
+bb27: ; preds = %bb26, %bb22
+ switch i32 undef, label %bb30 [
+ i32 0, label %bb28
+ i32 7, label %bb28
+ ]
+
+bb28: ; preds = %bb27, %bb27, %bb25
+ br label %bb4
+
+bb29: ; preds = %bb4
+ br i1 undef, label %bb3, label %bb30
+
+bb30: ; preds = %bb29, %bb27, %bb25
+ ret void
+}
+
+attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
+
+!1 = !{!2, !2, i64 0}
+!2 = !{!"omnipotent char", !3, i64 0}
+!3 = !{!"Simple C/C++ TBAA"}
+!4 = !{!5, !5, i64 0}
+!5 = !{!"short", !2, i64 0}
+!6 = !{!7, !7, i64 0}
+!7 = !{!"int", !2, i64 0}
More information about the llvm-commits
mailing list