Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AArch64/i1-contents.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 54457678186b |
children |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
30 ; AAPCS: low 8 bits of w0 must be either 0 or 1. Need to mask them off. | 30 ; AAPCS: low 8 bits of w0 must be either 0 or 1. Need to mask them off. |
31 define i1 @produce_i1_ret() { | 31 define i1 @produce_i1_ret() { |
32 ; CHECK-LABEL: produce_i1_ret: | 32 ; CHECK-LABEL: produce_i1_ret: |
33 ; CHECK: ldr [[VAR32:w[0-9]+]], [{{x[0-9]+}}, :lo12:var] | 33 ; CHECK: ldr [[VAR32:w[0-9]+]], [{{x[0-9]+}}, :lo12:var] |
34 ; CHECK: and w0, [[VAR32]], #{{0x1|0xff}} | 34 ; CHECK: and w0, [[VAR32]], #{{0x1|0xff}} |
35 %val = load %big* @var | 35 %val = load %big, %big* @var |
36 %val1 = trunc %big %val to i1 | 36 %val1 = trunc %big %val to i1 |
37 ret i1 %val1 | 37 ret i1 %val1 |
38 } | 38 } |
39 | 39 |
40 define void @produce_i1_arg() { | 40 define void @produce_i1_arg() { |
41 ; CHECK-LABEL: produce_i1_arg: | 41 ; CHECK-LABEL: produce_i1_arg: |
42 ; CHECK: ldr [[VAR32:w[0-9]+]], [{{x[0-9]+}}, :lo12:var] | 42 ; CHECK: ldr [[VAR32:w[0-9]+]], [{{x[0-9]+}}, :lo12:var] |
43 ; CHECK: and w0, [[VAR32]], #{{0x1|0xff}} | 43 ; CHECK: and w0, [[VAR32]], #{{0x1|0xff}} |
44 ; CHECK: bl consume_i1_arg | 44 ; CHECK: bl consume_i1_arg |
45 %val = load %big* @var | 45 %val = load %big, %big* @var |
46 %val1 = trunc %big %val to i1 | 46 %val1 = trunc %big %val to i1 |
47 call void @consume_i1_arg(i1 %val1) | 47 call void @consume_i1_arg(i1 %val1) |
48 ret void | 48 ret void |
49 } | 49 } |
50 | 50 |