define arm_aapcs_vfpcc <8 x half> @ext_fpintrinsics_trunc_half(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: ext_fpintrinsics_trunc_half:
; CHECK: @ %bb.0: @ %entry
-; CHECK-NEXT: .vsave {d8, d9}
-; CHECK-NEXT: vpush {d8, d9}
+; CHECK-NEXT: .vsave {d8, d9, d10, d11}
+; CHECK-NEXT: vpush {d8, d9, d10, d11}
; CHECK-NEXT: vcvtb.f32.f16 q2, q0
; CHECK-NEXT: vcvtb.f32.f16 q4, q1
-; CHECK-NEXT: vabs.f32 q3, q2
-; CHECK-NEXT: vcvtt.f32.f16 q0, q0
+; CHECK-NEXT: vrintm.f32 q3, q2
+; CHECK-NEXT: vrintx.f32 q5, q4
+; CHECK-NEXT: vabs.f32 q3, q3
+; CHECK-NEXT: vrinta.f32 q4, q4
; CHECK-NEXT: vminnm.f32 q3, q3, q2
+; CHECK-NEXT: vrintp.f32 q2, q2
+; CHECK-NEXT: vmaxnm.f32 q3, q3, q5
+; CHECK-NEXT: vcvtt.f32.f16 q0, q0
+; CHECK-NEXT: vfma.f32 q2, q3, q4
+; CHECK-NEXT: vrintm.f32 q3, q0
+; CHECK-NEXT: vabs.f32 q3, q3
; CHECK-NEXT: vcvtt.f32.f16 q1, q1
-; CHECK-NEXT: vmaxnm.f32 q3, q3, q4
-; CHECK-NEXT: vfma.f32 q4, q3, q2
-; CHECK-NEXT: vabs.f32 q3, q0
; CHECK-NEXT: vminnm.f32 q3, q3, q0
-; CHECK-NEXT: vrintp.f32 q2, q4
-; CHECK-NEXT: vmaxnm.f32 q3, q3, q1
-; CHECK-NEXT: vrintm.f32 q2, q2
-; CHECK-NEXT: vfma.f32 q1, q3, q0
-; CHECK-NEXT: vrintx.f32 q2, q2
-; CHECK-NEXT: vrintp.f32 q0, q1
-; CHECK-NEXT: vrinta.f32 q2, q2
-; CHECK-NEXT: vrintm.f32 q0, q0
+; CHECK-NEXT: vrintx.f32 q4, q1
+; CHECK-NEXT: vmaxnm.f32 q3, q3, q4
+; CHECK-NEXT: vrinta.f32 q1, q1
+; CHECK-NEXT: vrintp.f32 q0, q0
; CHECK-NEXT: vrintz.f32 q2, q2
-; CHECK-NEXT: vrintx.f32 q0, q0
-; CHECK-NEXT: vrinta.f32 q0, q0
+; CHECK-NEXT: vfma.f32 q0, q3, q1
; CHECK-NEXT: vrintz.f32 q1, q0
; CHECK-NEXT: vcvtb.f16.f32 q0, q2
; CHECK-NEXT: vcvtt.f16.f32 q0, q1
-; CHECK-NEXT: vpop {d8, d9}
+; CHECK-NEXT: vpop {d8, d9, d10, d11}
; CHECK-NEXT: bx lr
entry:
%sa = fpext <8 x half> %a to <8 x float>
%sb = fpext <8 x half> %b to <8 x float>
- %abs = call <8 x float> @llvm.fabs.v8f32(<8 x float> %sa)
+ %floor = call <8 x float> @llvm.floor.v8f32(<8 x float> %sa)
+ %rint = call <8 x float> @llvm.rint.v8f32(<8 x float> %sb)
+ %ceil = call <8 x float> @llvm.ceil.v8f32(<8 x float> %sa)
+ %round = call <8 x float> @llvm.round.v8f32(<8 x float> %sb)
+ %abs = call <8 x float> @llvm.fabs.v8f32(<8 x float> %floor)
%min = call <8 x float> @llvm.minnum.v8f32(<8 x float> %abs, <8 x float> %sa)
- %max = call <8 x float> @llvm.maxnum.v8f32(<8 x float> %min, <8 x float> %sb)
- %fma = call <8 x float> @llvm.fma.v8f32(<8 x float> %max, <8 x float> %sa, <8 x float> %sb)
- %ceil = call <8 x float> @llvm.ceil.v8f32(<8 x float> %fma)
- %floor = call <8 x float> @llvm.floor.v8f32(<8 x float> %ceil)
- %rint = call <8 x float> @llvm.rint.v8f32(<8 x float> %floor)
- %round = call <8 x float> @llvm.round.v8f32(<8 x float> %rint)
- %trunc = call <8 x float> @llvm.trunc.v8f32(<8 x float> %round)
+ %max = call <8 x float> @llvm.maxnum.v8f32(<8 x float> %min, <8 x float> %rint)
+ %fma = call <8 x float> @llvm.fma.v8f32(<8 x float> %max, <8 x float> %round, <8 x float> %ceil)
+ %trunc = call <8 x float> @llvm.trunc.v8f32(<8 x float> %fma)
%t = fptrunc <8 x float> %trunc to <8 x half>
ret <8 x half> %t
}
define float @floor_trunc(float %x) {
; CHECK-LABEL: @floor_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @floor_ceil(float %x) {
; CHECK-LABEL: @floor_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @floor_round(float %x) {
; CHECK-LABEL: @floor_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @floor_roundeven(float %x) {
; CHECK-LABEL: @floor_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @floor_nearbyint(float %x) {
; CHECK-LABEL: @floor_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)
define float @floor_rint(float %x) {
; CHECK-LABEL: @floor_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.floor.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.floor.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @trunc_floor(float %x) {
; CHECK-LABEL: @trunc_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @trunc_ceil(float %x) {
; CHECK-LABEL: @trunc_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @trunc_round(float %x) {
; CHECK-LABEL: @trunc_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @trunc_roundeven(float %x) {
; CHECK-LABEL: @trunc_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @trunc_nearbyint(float %x) {
; CHECK-LABEL: @trunc_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)
define float @trunc_rint(float %x) {
; CHECK-LABEL: @trunc_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.trunc.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.trunc.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @ceil_floor(float %x) {
; CHECK-LABEL: @ceil_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @ceil_trunc(float %x) {
; CHECK-LABEL: @ceil_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @ceil_round(float %x) {
; CHECK-LABEL: @ceil_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @ceil_roundeven(float %x) {
; CHECK-LABEL: @ceil_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @ceil_nearbyint(float %x) {
; CHECK-LABEL: @ceil_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)
define float @ceil_rint(float %x) {
; CHECK-LABEL: @ceil_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.ceil.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.ceil.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @round_floor(float %x) {
; CHECK-LABEL: @round_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @round_trunc(float %x) {
; CHECK-LABEL: @round_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @round_ceil(float %x) {
; CHECK-LABEL: @round_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @round_roundeven(float %x) {
; CHECK-LABEL: @round_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @round_nearbyint(float %x) {
; CHECK-LABEL: @round_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)
define float @round_rint(float %x) {
; CHECK-LABEL: @round_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.round.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.round.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @roundeven_floor(float %x) {
; CHECK-LABEL: @roundeven_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @roundeven_trunc(float %x) {
; CHECK-LABEL: @roundeven_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @roundeven_ceil(float %x) {
; CHECK-LABEL: @roundeven_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @roundeven_round(float %x) {
; CHECK-LABEL: @roundeven_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @roundeven_nearbyint(float %x) {
; CHECK-LABEL: @roundeven_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)
define float @roundeven_rint(float %x) {
; CHECK-LABEL: @roundeven_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.roundeven.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.roundeven.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @nearbyint_floor(float %x) {
; CHECK-LABEL: @nearbyint_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @nearbyint_trunc(float %x) {
; CHECK-LABEL: @nearbyint_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @nearbyint_ceil(float %x) {
; CHECK-LABEL: @nearbyint_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @nearbyint_round(float %x) {
; CHECK-LABEL: @nearbyint_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @nearbyint_roundeven(float %x) {
; CHECK-LABEL: @nearbyint_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @nearbyint_rint(float %x) {
; CHECK-LABEL: @nearbyint_rint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.nearbyint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.rint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.nearbyint.f32(float %x)
%r = call float @llvm.rint.f32(float %a)
define float @rint_floor(float %x) {
; CHECK-LABEL: @rint_floor(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.floor.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.floor.f32(float %a)
define float @rint_trunc(float %x) {
; CHECK-LABEL: @rint_trunc(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.trunc.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.trunc.f32(float %a)
define float @rint_ceil(float %x) {
; CHECK-LABEL: @rint_ceil(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.ceil.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.ceil.f32(float %a)
define float @rint_round(float %x) {
; CHECK-LABEL: @rint_round(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.round.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.round.f32(float %a)
define float @rint_roundeven(float %x) {
; CHECK-LABEL: @rint_roundeven(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.roundeven.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.roundeven.f32(float %a)
define float @rint_nearbyint(float %x) {
; CHECK-LABEL: @rint_nearbyint(
; CHECK-NEXT: [[A:%.*]] = call float @llvm.rint.f32(float [[X:%.*]])
-; CHECK-NEXT: [[R:%.*]] = call float @llvm.nearbyint.f32(float [[A]])
-; CHECK-NEXT: ret float [[R]]
+; CHECK-NEXT: ret float [[A]]
;
%a = call float @llvm.rint.f32(float %x)
%r = call float @llvm.nearbyint.f32(float %a)