Skip to content

Commit 077ca13

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent f337525 commit 077ca13

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

llvm/test/Transforms/InstCombine/fpcast.ll

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,3 +347,68 @@ define double @masked_uint_to_fpext3(i32 %x) {
347347
%r = fpext float %f to double
348348
ret double %r
349349
}
350+
351+
define i32 @fptosi_nonnorm(float nofpclass(norm) %x) {
352+
; CHECK-LABEL: @fptosi_nonnorm(
353+
; CHECK-NEXT: [[RET:%.*]] = fptosi float [[X:%.*]] to i32
354+
; CHECK-NEXT: ret i32 [[RET]]
355+
;
356+
%ret = fptosi float %x to i32
357+
ret i32 %ret
358+
}
359+
360+
define i32 @fptoui_nonnorm(float nofpclass(pnorm) %x) {
361+
; CHECK-LABEL: @fptoui_nonnorm(
362+
; CHECK-NEXT: [[RET:%.*]] = fptoui float [[X:%.*]] to i32
363+
; CHECK-NEXT: ret i32 [[RET]]
364+
;
365+
%ret = fptoui float %x to i32
366+
ret i32 %ret
367+
}
368+
369+
define i32 @fptosi_nonnorm_copysign(float %x) {
370+
; CHECK-LABEL: @fptosi_nonnorm_copysign(
371+
; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.copysign.f32(float 0.000000e+00, float [[X:%.*]])
372+
; CHECK-NEXT: [[RET:%.*]] = fptosi float [[VAL]] to i32
373+
; CHECK-NEXT: ret i32 [[RET]]
374+
;
375+
%val = call float @llvm.copysign.f32(float 0.0, float %x)
376+
%ret = fptosi float %val to i32
377+
ret i32 %ret
378+
}
379+
380+
define i32 @fptosi_nonnorm_fmul(float %x) {
381+
; CHECK-LABEL: @fptosi_nonnorm_fmul(
382+
; CHECK-NEXT: [[SEL:%.*]] = fmul float [[X:%.*]], 0.000000e+00
383+
; CHECK-NEXT: [[RET:%.*]] = fptosi float [[SEL]] to i32
384+
; CHECK-NEXT: ret i32 [[RET]]
385+
;
386+
%sel = fmul float %x, 0.000000e+00
387+
%ret = fptosi float %sel to i32
388+
ret i32 %ret
389+
}
390+
391+
define i32 @fptosi_select(i1 %cond) {
392+
; CHECK-LABEL: @fptosi_select(
393+
; CHECK-NEXT: [[RET:%.*]] = select i1 [[COND:%.*]], i32 1, i32 -1
394+
; CHECK-NEXT: ret i32 [[RET]]
395+
;
396+
%sel = select i1 %cond, float 1.0, float -1.0
397+
%ret = fptosi float %sel to i32
398+
ret i32 %ret
399+
}
400+
401+
define i32 @mul_pos_zero_convert(i32 %a) {
402+
; CHECK-LABEL: @mul_pos_zero_convert(
403+
; CHECK-NEXT: entry:
404+
; CHECK-NEXT: [[FP:%.*]] = sitofp i32 [[A:%.*]] to float
405+
; CHECK-NEXT: [[RET:%.*]] = fmul float [[FP]], 0.000000e+00
406+
; CHECK-NEXT: [[CONV:%.*]] = fptosi float [[RET]] to i32
407+
; CHECK-NEXT: ret i32 [[CONV]]
408+
;
409+
entry:
410+
%fp = sitofp i32 %a to float
411+
%ret = fmul float %fp, 0.000000e+00
412+
%conv = fptosi float %ret to i32
413+
ret i32 %conv
414+
}

0 commit comments

Comments
 (0)