Add TargetLowering::prepareVolatileOrAtomicLoad
[oota-llvm.git] / test / CodeGen / SystemZ / addr-03.ll
1 ; Test constant addresses, unlikely as they are.
2 ;
3 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
4
5 define void @f1() {
6 ; CHECK-LABEL: f1:
7 ; CHECK: lb %r0, 0
8 ; CHECK: br %r14
9   %ptr = inttoptr i64 0 to i8 *
10   %val = load volatile i8 *%ptr
11   ret void
12 }
13
14 define void @f2() {
15 ; CHECK-LABEL: f2:
16 ; CHECK: lb %r0, -524288
17 ; CHECK: br %r14
18   %ptr = inttoptr i64 -524288 to i8 *
19   %val = load volatile i8 *%ptr
20   ret void
21 }
22
23 define void @f3() {
24 ; CHECK-LABEL: f3:
25 ; CHECK-NOT: lb %r0, -524289
26 ; CHECK: br %r14
27   %ptr = inttoptr i64 -524289 to i8 *
28   %val = load volatile i8 *%ptr
29   ret void
30 }
31
32 define void @f4() {
33 ; CHECK-LABEL: f4:
34 ; CHECK: lb %r0, 524287
35 ; CHECK: br %r14
36   %ptr = inttoptr i64 524287 to i8 *
37   %val = load volatile i8 *%ptr
38   ret void
39 }
40
41 define void @f5() {
42 ; CHECK-LABEL: f5:
43 ; CHECK-NOT: lb %r0, 524288
44 ; CHECK: br %r14
45   %ptr = inttoptr i64 524288 to i8 *
46   %val = load volatile i8 *%ptr
47   ret void
48 }