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