Skip to content

Commit 87421b6

Browse files
committed
[CVP] Add pre-commit tests. NFC.
1 parent 770fd38 commit 87421b6

File tree

1 file changed

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

1 file changed

+65
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,3 +290,68 @@ if.end:
290290
%phi = phi i64 [%val, %bb1], [0, %entry]
291291
ret i64 %phi
292292
}
293+
294+
define i8 @test_smax_to_umax_nneg(i8 %a, i8 %b) {
295+
; CHECK-LABEL: @test_smax_to_umax_nneg(
296+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
297+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
298+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smax.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
299+
; CHECK-NEXT: ret i8 [[RET]]
300+
;
301+
%nneg_a = and i8 %a, 127
302+
%nneg_b = and i8 %b, 127
303+
%ret = call i8 @llvm.smax.i8(i8 %nneg_a, i8 %nneg_b)
304+
ret i8 %ret
305+
}
306+
307+
define i8 @test_smax_to_umax_neg(i8 %a, i8 %b) {
308+
; CHECK-LABEL: @test_smax_to_umax_neg(
309+
; CHECK-NEXT: [[NEG_A:%.*]] = or i8 [[A:%.*]], -128
310+
; CHECK-NEXT: [[NEG_B:%.*]] = or i8 [[B:%.*]], -128
311+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smax.i8(i8 [[NEG_A]], i8 [[NEG_B]])
312+
; CHECK-NEXT: ret i8 [[RET]]
313+
;
314+
%neg_a = or i8 %a, 128
315+
%neg_b = or i8 %b, 128
316+
%ret = call i8 @llvm.smax.i8(i8 %neg_a, i8 %neg_b)
317+
ret i8 %ret
318+
}
319+
320+
define i8 @test_smin_to_umin_nneg(i8 %a, i8 %b) {
321+
; CHECK-LABEL: @test_smin_to_umin_nneg(
322+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
323+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
324+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smin.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
325+
; CHECK-NEXT: ret i8 [[RET]]
326+
;
327+
%nneg_a = and i8 %a, 127
328+
%nneg_b = and i8 %b, 127
329+
%ret = call i8 @llvm.smin.i8(i8 %nneg_a, i8 %nneg_b)
330+
ret i8 %ret
331+
}
332+
333+
define i8 @test_smin_to_umin_neg(i8 %a, i8 %b) {
334+
; CHECK-LABEL: @test_smin_to_umin_neg(
335+
; CHECK-NEXT: [[NEG_A:%.*]] = or i8 [[A:%.*]], -128
336+
; CHECK-NEXT: [[NEG_B:%.*]] = or i8 [[B:%.*]], -128
337+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smin.i8(i8 [[NEG_A]], i8 [[NEG_B]])
338+
; CHECK-NEXT: ret i8 [[RET]]
339+
;
340+
%neg_a = or i8 %a, 128
341+
%neg_b = or i8 %b, 128
342+
%ret = call i8 @llvm.smin.i8(i8 %neg_a, i8 %neg_b)
343+
ret i8 %ret
344+
}
345+
346+
define i8 @test_umax_nneg(i8 %a, i8 %b) {
347+
; CHECK-LABEL: @test_umax_nneg(
348+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
349+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
350+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.umax.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
351+
; CHECK-NEXT: ret i8 [[RET]]
352+
;
353+
%nneg_a = and i8 %a, 127
354+
%nneg_b = and i8 %b, 127
355+
%ret = call i8 @llvm.umax.i8(i8 %nneg_a, i8 %nneg_b)
356+
ret i8 %ret
357+
}

0 commit comments

Comments
 (0)