brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · b915e45 Raw
108 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- | FileCheck %s3 4; This tests some cases where BT must not be generated.  See also bt.ll.5; Fixes 20040709-[12].c in gcc testsuite.6 7define void @test2(i32 %x, i32 %n) nounwind {8; CHECK-LABEL: test2:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    xorl %eax, %eax11; CHECK-NEXT:    testb %al, %al12; CHECK-NEXT:    jne .LBB0_213; CHECK-NEXT:  # %bb.1: # %bb14; CHECK-NEXT:    calll foo@PLT15; CHECK-NEXT:  .LBB0_2: # %UnifiedReturnBlock16; CHECK-NEXT:    retl17entry:18        %tmp1 = and i32 %x, 119        %tmp2 = urem i32 %tmp1, 1520	%tmp3 = and i32 %tmp2, 1		; <i32> [#uses=1]21	%tmp4 = icmp eq i32 %tmp3, %tmp2	; <i1> [#uses=1]22	br i1 %tmp4, label %bb, label %UnifiedReturnBlock23 24bb:		; preds = %entry25	call void @foo()26	ret void27 28UnifiedReturnBlock:		; preds = %entry29	ret void30}31 32define void @test3(i32 %x, i32 %n) nounwind {33; CHECK-LABEL: test3:34; CHECK:       # %bb.0: # %entry35; CHECK-NEXT:    xorl %eax, %eax36; CHECK-NEXT:    testb %al, %al37; CHECK-NEXT:    jne .LBB1_238; CHECK-NEXT:  # %bb.1: # %bb39; CHECK-NEXT:    calll foo@PLT40; CHECK-NEXT:  .LBB1_2: # %UnifiedReturnBlock41; CHECK-NEXT:    retl42entry:43        %tmp1 = and i32 %x, 144        %tmp2 = urem i32 %tmp1, 1545	%tmp3 = and i32 %tmp2, 1		; <i32> [#uses=1]46	%tmp4 = icmp eq i32 %tmp2, %tmp3	; <i1> [#uses=1]47	br i1 %tmp4, label %bb, label %UnifiedReturnBlock48 49bb:		; preds = %entry50	call void @foo()51	ret void52 53UnifiedReturnBlock:		; preds = %entry54	ret void55}56 57define void @test4(i32 %x, i32 %n) nounwind {58; CHECK-LABEL: test4:59; CHECK:       # %bb.0: # %entry60; CHECK-NEXT:    movb $1, %al61; CHECK-NEXT:    testb %al, %al62; CHECK-NEXT:    jne .LBB2_263; CHECK-NEXT:  # %bb.1: # %bb64; CHECK-NEXT:    calll foo@PLT65; CHECK-NEXT:  .LBB2_2: # %UnifiedReturnBlock66; CHECK-NEXT:    retl67entry:68        %tmp1 = and i32 %x, 169        %tmp2 = urem i32 %tmp1, 1570	%tmp3 = and i32 %tmp2, 1		; <i32> [#uses=1]71	%tmp4 = icmp ne i32 %tmp2, %tmp3	; <i1> [#uses=1]72	br i1 %tmp4, label %bb, label %UnifiedReturnBlock73 74bb:		; preds = %entry75	call void @foo()76	ret void77 78UnifiedReturnBlock:		; preds = %entry79	ret void80}81 82define void @test5(i32 %x, i32 %n) nounwind {83; CHECK-LABEL: test5:84; CHECK:       # %bb.0: # %entry85; CHECK-NEXT:    movb $1, %al86; CHECK-NEXT:    testb %al, %al87; CHECK-NEXT:    jne .LBB3_288; CHECK-NEXT:  # %bb.1: # %bb89; CHECK-NEXT:    calll foo@PLT90; CHECK-NEXT:  .LBB3_2: # %UnifiedReturnBlock91; CHECK-NEXT:    retl92entry:93        %tmp1 = and i32 %x, 194        %tmp2 = urem i32 %tmp1, 1595	%tmp3 = and i32 %tmp2, 1		; <i32> [#uses=1]96	%tmp4 = icmp ne i32 %tmp2, %tmp3	; <i1> [#uses=1]97	br i1 %tmp4, label %bb, label %UnifiedReturnBlock98 99bb:		; preds = %entry100	call void @foo()101	ret void102 103UnifiedReturnBlock:		; preds = %entry104	ret void105}106 107declare void @foo()108