1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; REQUIRES: asserts 3; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s 4; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -passes='require<domtree>,loop(loop-simplifycfg)' -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s 5; 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 6 7target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" 8 9; Make sure we update MSSA properly. 10define void @test(i32* %a, i32* %b) { 11; CHECK-LABEL: @test( 12 13entry: 14 br label %for.body 15 16for.body: 17 %i = phi i32 [ 0, %entry ], [ %i.inc, %latch ] 18 br label %switch.bb 19 20switch.bb: 21 switch i2 1, label %default [ 22 i2 1, label %case 23 ] 24 25case: 26 br label %latch 27 28default: 29 unreachable 30 31latch: 32 store i32 %i, i32* %a 33 store i32 %i, i32* %b 34 %i.inc = add nsw i32 %i, 1 35 %exitcond = icmp eq i32 %i.inc, 4 36 br i1 %exitcond, label %exit, label %for.body 37 38exit: 39 ret void 40} 41