; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc -mtriple=thumbv8.1m.main %s -o - | FileCheck %s ; Checks that t2WhileLoopSetup is not CSEd. define i32 @test(i16 %arg) { ; CHECK-LABEL: test: ; CHECK: @ %bb.0: @ %bb ; CHECK-NEXT: push {r7, lr} ; CHECK-NEXT: uxth r0, r0 ; CHECK-NEXT: wls lr, r0, .LBB0_4 ; CHECK-NEXT: .LBB0_1: @ %bb3 ; CHECK-NEXT: @ =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: le lr, .LBB0_1 ; CHECK-NEXT: @ %bb.2: @ %bb2 ; CHECK-NEXT: wls lr, r0, .LBB0_4 ; CHECK-NEXT: .LBB0_3: @ %bb7 ; CHECK-NEXT: @ =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: le lr, .LBB0_3 ; CHECK-NEXT: .LBB0_4: @ %.critedge ; CHECK-NEXT: movs r0, #0 ; CHECK-NEXT: pop {r7, pc} bb: %i = zext i16 %arg to i32 %i1 = icmp eq i16 %arg, 0 br i1 %i1, label %.critedge, label %bb3 bb2: ; preds = %bb3 br i1 %i1, label %.critedge, label %bb7 bb3: ; preds = %bb3, %bb %i4 = phi i32 [ %i5, %bb3 ], [ 0, %bb ] %i5 = add i32 %i4, 1 %i6 = icmp eq i32 %i5, %i br i1 %i6, label %bb2, label %bb3 bb7: ; preds = %bb7, %bb2 %i8 = phi i32 [ %i9, %bb7 ], [ 0, %bb2 ] %i9 = add i32 %i8, 1 %i10 = icmp eq i32 %i9, %i br i1 %i10, label %.critedge, label %bb7 .critedge: ; preds = %bb7, %bb2, %bb ret i32 0 }