Skip to content

Commit 278062f

Browse files
committed
[CVP] Add test showing how a call-site range can pessimize opt (NFC)
1 parent e87aa0c commit 278062f

File tree

1 file changed

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

1 file changed

+53
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/uscmp.ll

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,59 @@ default:
308308
ret i8 123
309309
}
310310

311+
define i8 @ucmp_switch_callsite_range(i32 %x, i32 %y) {
312+
; CHECK-LABEL: @ucmp_switch_callsite_range(
313+
; CHECK-NEXT: [[CMP:%.*]] = call range(i8 -2, 3) i8 @llvm.ucmp.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.unreachable:
332+
; CHECK-NEXT: unreachable
333+
; CHECK: default:
334+
; CHECK-NEXT: ret i8 123
335+
;
336+
%cmp = call range(i8 -2, 3) i8 @llvm.ucmp(i32 %x, i32 %y)
337+
switch i8 %cmp, label %default [
338+
i8 -2, label %bb.neg2
339+
i8 -1, label %bb.neg1
340+
i8 0, label %bb.0
341+
i8 1, label %bb.1
342+
i8 2, label %bb.2
343+
]
344+
345+
bb.neg2:
346+
ret i8 -2
347+
348+
bb.neg1:
349+
ret i8 -1
350+
351+
bb.0:
352+
ret i8 0
353+
354+
bb.1:
355+
ret i8 1
356+
357+
bb.2:
358+
ret i8 2
359+
360+
default:
361+
ret i8 123
362+
}
363+
311364
define i8 @scmp_switch(i32 %x, i32 %y) {
312365
; CHECK-LABEL: @scmp_switch(
313366
; CHECK-NEXT: [[CMP:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X:%.*]], i32 [[Y:%.*]])

0 commit comments

Comments
 (0)