Skip to content

Commit 88c3e0e

Browse files
committed
[CVP] Add tests for ucmp/scmp with switch (NFC)
1 parent 5d489f4 commit 88c3e0e

File tree

1 file changed

+102
-0
lines changed
  • llvm/test/Transforms/CorrelatedValuePropagation

1 file changed

+102
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/uscmp.ll

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,3 +256,105 @@ define i8 @ucmp_6(i32 %x, i32 %y) {
256256
%1 = call i8 @llvm.ucmp(i32 %x, i32 %y)
257257
ret i8 %1
258258
}
259+
260+
define i8 @ucmp_switch(i32 %x, i32 %y) {
261+
; CHECK-LABEL: @ucmp_switch(
262+
; CHECK-NEXT: [[CMP:%.*]] = call i8 @llvm.ucmp.i8.i32(i32 [[X:%.*]], i32 [[Y:%.*]])
263+
; CHECK-NEXT: switch i8 [[CMP]], label [[DEFAULT_UNREACHABLE:%.*]] [
264+
; CHECK-NEXT: i8 -2, label [[BB_NEG2:%.*]]
265+
; CHECK-NEXT: i8 -1, label [[BB_NEG1:%.*]]
266+
; CHECK-NEXT: i8 0, label [[BB_0:%.*]]
267+
; CHECK-NEXT: i8 1, label [[BB_1:%.*]]
268+
; CHECK-NEXT: i8 2, label [[BB_2:%.*]]
269+
; CHECK-NEXT: ]
270+
; CHECK: bb.neg2:
271+
; CHECK-NEXT: ret i8 -2
272+
; CHECK: bb.neg1:
273+
; CHECK-NEXT: ret i8 -1
274+
; CHECK: bb.0:
275+
; CHECK-NEXT: ret i8 0
276+
; CHECK: bb.1:
277+
; CHECK-NEXT: ret i8 1
278+
; CHECK: bb.2:
279+
; CHECK-NEXT: ret i8 2
280+
; CHECK: default:
281+
; CHECK-NEXT: ret i8 123
282+
;
283+
%cmp = call i8 @llvm.ucmp(i32 %x, i32 %y)
284+
switch i8 %cmp, label %default [
285+
i8 -2, label %bb.neg2
286+
i8 -1, label %bb.neg1
287+
i8 0, label %bb.0
288+
i8 1, label %bb.1
289+
i8 2, label %bb.2
290+
]
291+
292+
bb.neg2:
293+
ret i8 -2
294+
295+
bb.neg1:
296+
ret i8 -1
297+
298+
bb.0:
299+
ret i8 0
300+
301+
bb.1:
302+
ret i8 1
303+
304+
bb.2:
305+
ret i8 2
306+
307+
default:
308+
ret i8 123
309+
}
310+
311+
define i8 @scmp_switch(i32 %x, i32 %y) {
312+
; CHECK-LABEL: @scmp_switch(
313+
; CHECK-NEXT: [[CMP:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X:%.*]], i32 [[Y:%.*]])
314+
; CHECK-NEXT: switch i8 [[CMP]], label [[DEFAULT_UNREACHABLE:%.*]] [
315+
; CHECK-NEXT: i8 -2, label [[BB_NEG2:%.*]]
316+
; CHECK-NEXT: i8 -1, label [[BB_NEG1:%.*]]
317+
; CHECK-NEXT: i8 0, label [[BB_0:%.*]]
318+
; CHECK-NEXT: i8 1, label [[BB_1:%.*]]
319+
; CHECK-NEXT: i8 2, label [[BB_2:%.*]]
320+
; CHECK-NEXT: ]
321+
; CHECK: bb.neg2:
322+
; CHECK-NEXT: ret i8 -2
323+
; CHECK: bb.neg1:
324+
; CHECK-NEXT: ret i8 -1
325+
; CHECK: bb.0:
326+
; CHECK-NEXT: ret i8 0
327+
; CHECK: bb.1:
328+
; CHECK-NEXT: ret i8 1
329+
; CHECK: bb.2:
330+
; CHECK-NEXT: ret i8 2
331+
; CHECK: default:
332+
; CHECK-NEXT: ret i8 123
333+
;
334+
%cmp = call i8 @llvm.scmp(i32 %x, i32 %y)
335+
switch i8 %cmp, label %default [
336+
i8 -2, label %bb.neg2
337+
i8 -1, label %bb.neg1
338+
i8 0, label %bb.0
339+
i8 1, label %bb.1
340+
i8 2, label %bb.2
341+
]
342+
343+
bb.neg2:
344+
ret i8 -2
345+
346+
bb.neg1:
347+
ret i8 -1
348+
349+
bb.0:
350+
ret i8 0
351+
352+
bb.1:
353+
ret i8 1
354+
355+
bb.2:
356+
ret i8 2
357+
358+
default:
359+
ret i8 123
360+
}

0 commit comments

Comments
 (0)