comparison test/CodeGen/AArch64/logical_shifted_reg.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 1172e4bd9c6f
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
6 @var1_64 = global i64 0 6 @var1_64 = global i64 0
7 @var2_64 = global i64 0 7 @var2_64 = global i64 0
8 8
9 define void @logical_32bit() minsize { 9 define void @logical_32bit() minsize {
10 ; CHECK-LABEL: logical_32bit: 10 ; CHECK-LABEL: logical_32bit:
11 %val1 = load i32* @var1_32 11 %val1 = load i32, i32* @var1_32
12 %val2 = load i32* @var2_32 12 %val2 = load i32, i32* @var2_32
13 13
14 ; First check basic and/bic/or/orn/eor/eon patterns with no shift 14 ; First check basic and/bic/or/orn/eor/eon patterns with no shift
15 %neg_val2 = xor i32 -1, %val2 15 %neg_val2 = xor i32 -1, %val2
16 16
17 %and_noshift = and i32 %val1, %val2 17 %and_noshift = and i32 %val1, %val2
96 ret void 96 ret void
97 } 97 }
98 98
99 define void @logical_64bit() minsize { 99 define void @logical_64bit() minsize {
100 ; CHECK-LABEL: logical_64bit: 100 ; CHECK-LABEL: logical_64bit:
101 %val1 = load i64* @var1_64 101 %val1 = load i64, i64* @var1_64
102 %val2 = load i64* @var2_64 102 %val2 = load i64, i64* @var2_64
103 103
104 ; First check basic and/bic/or/orn/eor/eon patterns with no shift 104 ; First check basic and/bic/or/orn/eor/eon patterns with no shift
105 %neg_val2 = xor i64 -1, %val2 105 %neg_val2 = xor i64 -1, %val2
106 106
107 %and_noshift = and i64 %val1, %val2 107 %and_noshift = and i64 %val1, %val2
189 ret void 189 ret void
190 } 190 }
191 191
192 define void @flag_setting() { 192 define void @flag_setting() {
193 ; CHECK-LABEL: flag_setting: 193 ; CHECK-LABEL: flag_setting:
194 %val1 = load i64* @var1_64 194 %val1 = load i64, i64* @var1_64
195 %val2 = load i64* @var2_64 195 %val2 = load i64, i64* @var2_64
196 196
197 ; CHECK: tst {{x[0-9]+}}, {{x[0-9]+}} 197 ; CHECK: tst {{x[0-9]+}}, {{x[0-9]+}}
198 ; CHECK: b.gt .L 198 ; CHECK: b.gt .L
199 %simple_and = and i64 %val1, %val2 199 %simple_and = and i64 %val1, %val2
200 %tst1 = icmp sgt i64 %simple_and, 0 200 %tst1 = icmp sgt i64 %simple_and, 0