Skip to content

Commit bdb0f47

Browse files
committed
[CVP] Add pre-commit tests. NFC.
1 parent ababa96 commit bdb0f47

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
@@ -235,3 +235,68 @@ define i8 @test19(i8 %x) {
235235
%r = call i8 @llvm.smax(i8 %x, i8 42)
236236
ret i8 %r
237237
}
238+
239+
define i8 @test_smax_to_umax_nneg(i8 %a, i8 %b) {
240+
; CHECK-LABEL: @test_smax_to_umax_nneg(
241+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
242+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
243+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smax.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
244+
; CHECK-NEXT: ret i8 [[RET]]
245+
;
246+
%nneg_a = and i8 %a, 127
247+
%nneg_b = and i8 %b, 127
248+
%ret = call i8 @llvm.smax.i8(i8 %nneg_a, i8 %nneg_b)
249+
ret i8 %ret
250+
}
251+
252+
define i8 @test_smax_to_umax_neg(i8 %a, i8 %b) {
253+
; CHECK-LABEL: @test_smax_to_umax_neg(
254+
; CHECK-NEXT: [[NEG_A:%.*]] = or i8 [[A:%.*]], -128
255+
; CHECK-NEXT: [[NEG_B:%.*]] = or i8 [[B:%.*]], -128
256+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smax.i8(i8 [[NEG_A]], i8 [[NEG_B]])
257+
; CHECK-NEXT: ret i8 [[RET]]
258+
;
259+
%neg_a = or i8 %a, 128
260+
%neg_b = or i8 %b, 128
261+
%ret = call i8 @llvm.smax.i8(i8 %neg_a, i8 %neg_b)
262+
ret i8 %ret
263+
}
264+
265+
define i8 @test_smin_to_umin_nneg(i8 %a, i8 %b) {
266+
; CHECK-LABEL: @test_smin_to_umin_nneg(
267+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
268+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
269+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smin.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
270+
; CHECK-NEXT: ret i8 [[RET]]
271+
;
272+
%nneg_a = and i8 %a, 127
273+
%nneg_b = and i8 %b, 127
274+
%ret = call i8 @llvm.smin.i8(i8 %nneg_a, i8 %nneg_b)
275+
ret i8 %ret
276+
}
277+
278+
define i8 @test_smin_to_umin_neg(i8 %a, i8 %b) {
279+
; CHECK-LABEL: @test_smin_to_umin_neg(
280+
; CHECK-NEXT: [[NEG_A:%.*]] = or i8 [[A:%.*]], -128
281+
; CHECK-NEXT: [[NEG_B:%.*]] = or i8 [[B:%.*]], -128
282+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.smin.i8(i8 [[NEG_A]], i8 [[NEG_B]])
283+
; CHECK-NEXT: ret i8 [[RET]]
284+
;
285+
%neg_a = or i8 %a, 128
286+
%neg_b = or i8 %b, 128
287+
%ret = call i8 @llvm.smin.i8(i8 %neg_a, i8 %neg_b)
288+
ret i8 %ret
289+
}
290+
291+
define i8 @test_umax_nneg(i8 %a, i8 %b) {
292+
; CHECK-LABEL: @test_umax_nneg(
293+
; CHECK-NEXT: [[NNEG_A:%.*]] = and i8 [[A:%.*]], 127
294+
; CHECK-NEXT: [[NNEG_B:%.*]] = and i8 [[B:%.*]], 127
295+
; CHECK-NEXT: [[RET:%.*]] = call i8 @llvm.umax.i8(i8 [[NNEG_A]], i8 [[NNEG_B]])
296+
; CHECK-NEXT: ret i8 [[RET]]
297+
;
298+
%nneg_a = and i8 %a, 127
299+
%nneg_b = and i8 %b, 127
300+
%ret = call i8 @llvm.umax.i8(i8 %nneg_a, i8 %nneg_b)
301+
ret i8 %ret
302+
}

0 commit comments

Comments
 (0)