Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/masked-iv-safe.ll @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | afa8332a0e37 |
children |
comparison
equal
deleted
inserted
replaced
120:1172e4bd9c6f | 121:803732b1fca8 |
---|---|
1 ; RUN: llc < %s -mcpu=generic -march=x86-64 | FileCheck %s | 1 ; RUN: llc < %s -mcpu=generic -mtriple=x86_64-- | FileCheck %s |
2 | 2 |
3 ; Optimize away zext-inreg and sext-inreg on the loop induction | 3 ; Optimize away zext-inreg and sext-inreg on the loop induction |
4 ; variable using trip-count information. | 4 ; variable using trip-count information. |
5 | 5 |
6 ; CHECK-LABEL: count_up | 6 ; CHECK-LABEL: count_up |
7 ; CHECK-NOT: {{and|movz|sar|shl}} | 7 ; CHECK-NOT: {{and|movz|sar|shl}} |
8 ; CHECK: incq | 8 ; CHECK: addq $8 |
9 ; CHECK-NOT: {{and|movz|sar|shl}} | 9 ; CHECK-NOT: {{and|movz|sar|shl}} |
10 ; CHECK: jne | 10 ; CHECK: jne |
11 define void @count_up(double* %d, i64 %n) nounwind { | 11 define void @count_up(double* %d, i64 %n) nounwind { |
12 entry: | 12 entry: |
13 br label %loop | 13 br label %loop |
36 ret void | 36 ret void |
37 } | 37 } |
38 | 38 |
39 ; CHECK-LABEL: count_down | 39 ; CHECK-LABEL: count_down |
40 ; CHECK-NOT: {{and|movz|sar|shl}} | 40 ; CHECK-NOT: {{and|movz|sar|shl}} |
41 ; CHECK: addq | 41 ; CHECK: addq $-8 |
42 ; CHECK-NOT: {{and|movz|sar|shl}} | 42 ; CHECK-NOT: {{and|movz|sar|shl}} |
43 ; CHECK: jne | 43 ; CHECK: jne |
44 define void @count_down(double* %d, i64 %n) nounwind { | 44 define void @count_down(double* %d, i64 %n) nounwind { |
45 entry: | 45 entry: |
46 br label %loop | 46 br label %loop |
69 ret void | 69 ret void |
70 } | 70 } |
71 | 71 |
72 ; CHECK-LABEL: count_up_signed | 72 ; CHECK-LABEL: count_up_signed |
73 ; CHECK-NOT: {{and|movz|sar|shl}} | 73 ; CHECK-NOT: {{and|movz|sar|shl}} |
74 ; CHECK: incq | 74 ; CHECK: addq $8 |
75 ; CHECK-NOT: {{and|movz|sar|shl}} | 75 ; CHECK-NOT: {{and|movz|sar|shl}} |
76 ; CHECK: jne | 76 ; CHECK: jne |
77 define void @count_up_signed(double* %d, i64 %n) nounwind { | 77 define void @count_up_signed(double* %d, i64 %n) nounwind { |
78 entry: | 78 entry: |
79 br label %loop | 79 br label %loop |
104 ret void | 104 ret void |
105 } | 105 } |
106 | 106 |
107 ; CHECK-LABEL: count_down_signed | 107 ; CHECK-LABEL: count_down_signed |
108 ; CHECK-NOT: {{and|movz|sar|shl}} | 108 ; CHECK-NOT: {{and|movz|sar|shl}} |
109 ; CHECK: addq | 109 ; CHECK: addq $-8 |
110 ; CHECK-NOT: {{and|movz|sar|shl}} | 110 ; CHECK-NOT: {{and|movz|sar|shl}} |
111 ; CHECK: jne | 111 ; CHECK: jne |
112 define void @count_down_signed(double* %d, i64 %n) nounwind { | 112 define void @count_down_signed(double* %d, i64 %n) nounwind { |
113 entry: | 113 entry: |
114 br label %loop | 114 br label %loop |
139 ret void | 139 ret void |
140 } | 140 } |
141 | 141 |
142 ; CHECK-LABEL: another_count_up | 142 ; CHECK-LABEL: another_count_up |
143 ; CHECK-NOT: {{and|movz|sar|shl}} | 143 ; CHECK-NOT: {{and|movz|sar|shl}} |
144 ; CHECK: addq | 144 ; CHECK: addq $8 |
145 ; CHECK-NOT: {{and|movz|sar|shl}} | 145 ; CHECK-NOT: {{and|movz|sar|shl}} |
146 ; CHECK: jne | 146 ; CHECK: jne |
147 define void @another_count_up(double* %d, i64 %n) nounwind { | 147 define void @another_count_up(double* %d, i64 %n) nounwind { |
148 entry: | 148 entry: |
149 br label %loop | 149 br label %loop |
172 ret void | 172 ret void |
173 } | 173 } |
174 | 174 |
175 ; CHECK-LABEL: another_count_down | 175 ; CHECK-LABEL: another_count_down |
176 ; CHECK-NOT: {{and|movz|sar|shl}} | 176 ; CHECK-NOT: {{and|movz|sar|shl}} |
177 ; CHECK: addq $-8, | 177 ; CHECK: addq $-8 |
178 ; CHECK-NOT: {{and|movz|sar|shl}} | 178 ; CHECK-NOT: {{and|movz|sar|shl}} |
179 ; CHECK: jne | 179 ; CHECK: jne |
180 define void @another_count_down(double* %d, i64 %n) nounwind { | 180 define void @another_count_down(double* %d, i64 %n) nounwind { |
181 entry: | 181 entry: |
182 br label %loop | 182 br label %loop |
205 ret void | 205 ret void |
206 } | 206 } |
207 | 207 |
208 ; CHECK-LABEL: another_count_up_signed | 208 ; CHECK-LABEL: another_count_up_signed |
209 ; CHECK-NOT: {{and|movz|sar|shl}} | 209 ; CHECK-NOT: {{and|movz|sar|shl}} |
210 ; CHECK: addq | 210 ; CHECK: addq $8 |
211 ; CHECK-NOT: {{and|movz|sar|shl}} | 211 ; CHECK-NOT: {{and|movz|sar|shl}} |
212 ; CHECK: jne | 212 ; CHECK: jne |
213 define void @another_count_up_signed(double* %d, i64 %n) nounwind { | 213 define void @another_count_up_signed(double* %d, i64 %n) nounwind { |
214 entry: | 214 entry: |
215 br label %loop | 215 br label %loop |
240 ret void | 240 ret void |
241 } | 241 } |
242 | 242 |
243 ; CHECK-LABEL: another_count_down_signed | 243 ; CHECK-LABEL: another_count_down_signed |
244 ; CHECK-NOT: {{and|movz|sar|shl}} | 244 ; CHECK-NOT: {{and|movz|sar|shl}} |
245 ; CHECK: decq | 245 ; CHECK: addq $-8 |
246 ; CHECK-NOT: {{and|movz|sar|shl}} | 246 ; CHECK-NOT: {{and|movz|sar|shl}} |
247 ; CHECK: jne | 247 ; CHECK: jne |
248 define void @another_count_down_signed(double* %d, i64 %n) nounwind { | 248 define void @another_count_down_signed(double* %d, i64 %n) nounwind { |
249 entry: | 249 entry: |
250 br label %loop | 250 br label %loop |