aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/JS/expect-intrinsics.ll
blob: b061f52967be25a82cbedcece97601e4a18379d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
; RUN: llc -march=js < %s | FileCheck %s

; Handle the llvm.expect intrinsic.

; CHECK: $expval = $x;
; CHECK: $tobool = ($expval|0)!=(0);
define void @foo(i32 %x) {
entry:
  %expval = call i32 @llvm.expect.i32(i32 %x, i32 0)
  %tobool = icmp ne i32 %expval, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:
  call void @callee()
  br label %if.end

if.end:
  ret void
}

; Function Attrs: nounwind readnone
declare i32 @llvm.expect.i32(i32, i32) #0

declare void @callee()

attributes #0 = { nounwind readnone }