1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2; RUN: llc < %s -O0 | FileCheck %s 3 4target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 5target triple = "i686-unknown-linux-gnu" 6 7@glbl = extern_weak constant i8 8 9declare i64 @llvm.expect.i64(i64, i64) 10declare i64 @llvm.expect.with.probability.i64(i64, i64, double) 11 12define void @test_expect() { 13; CHECK-LABEL: test_expect: 14; CHECK: # %bb.0: 15; CHECK-NEXT: movl $glbl, %eax 16; CHECK-NEXT: testl %eax, %eax 17; CHECK-NEXT: jne .LBB0_2 18; CHECK-NEXT: jmp .LBB0_1 19; CHECK-NEXT: .LBB0_1: # %bb1 20; CHECK-NEXT: .LBB0_2: # %bb2 21 %cmp2 = icmp eq ptr @glbl, null 22 %ext = zext i1 %cmp2 to i64 23 %tmp = call i64 @llvm.expect.i64(i64 %ext, i64 0) 24 %tmp2 = icmp ne i64 %tmp, 0 25 br i1 %tmp2, label %bb1, label %bb2 26 27bb1: 28 unreachable 29 30bb2: 31 unreachable 32} 33 34define void @test_expect_with_probability() { 35; CHECK-LABEL: test_expect_with_probability: 36; CHECK: # %bb.0: 37; CHECK-NEXT: movl $glbl, %eax 38; CHECK-NEXT: testl %eax, %eax 39; CHECK-NEXT: jne .LBB1_2 40; CHECK-NEXT: jmp .LBB1_1 41; CHECK-NEXT: .LBB1_1: # %bb1 42; CHECK-NEXT: .LBB1_2: # %bb2 43 %cmp2 = icmp eq ptr @glbl, null 44 %ext = zext i1 %cmp2 to i64 45 %tmp = call i64 @llvm.expect.with.probability.i64(i64 %ext, i64 0, double 0.5) 46 %tmp2 = icmp ne i64 %tmp, 0 47 br i1 %tmp2, label %bb1, label %bb2 48 49bb1: 50 unreachable 51 52bb2: 53 unreachable 54} 55