Mercurial > hg > CbC > CbC_llvm
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 |