]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/absolute-constant.ll
Vendor import of llvm release_40 branch r292009:
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / absolute-constant.ll
1 ; RUN: llc < %s | FileCheck %s
2 ; RUN: llc -relocation-model=pic < %s | FileCheck %s
3
4 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
5 target triple = "x86_64-unknown-linux-gnu"
6
7 @foo = external global i8, align 1, !absolute_symbol !0
8
9 define void @bar(i8* %x) {
10 entry:
11   %0 = load i8, i8* %x, align 1
12   %conv = sext i8 %0 to i32
13   ; CHECK: testb $foo, (%rdi)
14   %and = and i32 %conv, sext (i8 ptrtoint (i8* @foo to i8) to i32)
15   %tobool = icmp eq i32 %and, 0
16   br i1 %tobool, label %if.end, label %if.then
17
18 if.then:                                          ; preds = %entry
19   tail call void (...) @xf()
20   br label %if.end
21
22 if.end:                                           ; preds = %entry, %if.then
23   ret void
24 }
25
26 declare void @xf(...)
27
28 !0 = !{i32 0, i32 256}