From efeeb5b637a145613fc638dc27b1f980eacae2a1 Mon Sep 17 00:00:00 2001 From: Max Kazantsev Date: Thu, 21 Feb 2019 09:40:24 +0000 Subject: [PATCH] [TEST] Add failing test that shows problems with MSSA update in LoopSimplifyCFG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354559 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Transforms/LoopSimplifyCFG/mssa_update.ll | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/Transforms/LoopSimplifyCFG/mssa_update.ll diff --git a/test/Transforms/LoopSimplifyCFG/mssa_update.ll b/test/Transforms/LoopSimplifyCFG/mssa_update.ll new file mode 100644 index 00000000000..01f2ebbbc02 --- /dev/null +++ b/test/Transforms/LoopSimplifyCFG/mssa_update.ll @@ -0,0 +1,41 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; REQUIRES: asserts +; XFAIL: * +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -passes='require,loop(simplify-cfg)' -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s + +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" + +; Make sure we update MSSA properly. +define void @test(i32* %a, i32* %b) { +; CHECK-LABEL: @test( + +entry: + br label %for.body + +for.body: + %i = phi i32 [ 0, %entry ], [ %i.inc, %latch ] + br label %switch.bb + +switch.bb: + switch i2 1, label %default [ + i2 1, label %case + ] + +case: + br label %latch + +default: + unreachable + +latch: + store i32 %i, i32* %a + store i32 %i, i32* %b + %i.inc = add nsw i32 %i, 1 + %exitcond = icmp eq i32 %i.inc, 4 + br i1 %exitcond, label %exit, label %for.body + +exit: + ret void +} -- 2.40.0