1
; RUN: llc < %s -march=x86 | not grep btl
3
; This tests some cases where BT must not be generated. See also bt.ll.
4
; Fixes 20040709-[12].c in gcc testsuite.
6
define void @test2(i32 %x, i32 %n) nounwind {
9
%tmp2 = urem i32 %tmp1, 15
10
%tmp3 = and i32 %tmp2, 1 ; <i32> [#uses=1]
11
%tmp4 = icmp eq i32 %tmp3, %tmp2 ; <i1> [#uses=1]
12
br i1 %tmp4, label %bb, label %UnifiedReturnBlock
18
UnifiedReturnBlock: ; preds = %entry
22
define void @test3(i32 %x, i32 %n) nounwind {
25
%tmp2 = urem i32 %tmp1, 15
26
%tmp3 = and i32 %tmp2, 1 ; <i32> [#uses=1]
27
%tmp4 = icmp eq i32 %tmp2, %tmp3 ; <i1> [#uses=1]
28
br i1 %tmp4, label %bb, label %UnifiedReturnBlock
34
UnifiedReturnBlock: ; preds = %entry
38
define void @test4(i32 %x, i32 %n) nounwind {
41
%tmp2 = urem i32 %tmp1, 15
42
%tmp3 = and i32 %tmp2, 1 ; <i32> [#uses=1]
43
%tmp4 = icmp ne i32 %tmp2, %tmp3 ; <i1> [#uses=1]
44
br i1 %tmp4, label %bb, label %UnifiedReturnBlock
50
UnifiedReturnBlock: ; preds = %entry
54
define void @test5(i32 %x, i32 %n) nounwind {
57
%tmp2 = urem i32 %tmp1, 15
58
%tmp3 = and i32 %tmp2, 1 ; <i32> [#uses=1]
59
%tmp4 = icmp ne i32 %tmp2, %tmp3 ; <i1> [#uses=1]
60
br i1 %tmp4, label %bb, label %UnifiedReturnBlock
66
UnifiedReturnBlock: ; preds = %entry