@@ -3076,121 +3076,6 @@ define float @v_log_f32_fast(float %in) {
30763076 ret float %result
30773077}
30783078
3079- define float @v_log_f32_approx_fn_attr (float %in ) "approx-func-fp-math" ="true" {
3080- ; SI-SDAG-LABEL: v_log_f32_approx_fn_attr:
3081- ; SI-SDAG: ; %bb.0:
3082- ; SI-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3083- ; SI-SDAG-NEXT: s_mov_b32 s4, 0x800000
3084- ; SI-SDAG-NEXT: v_cmp_gt_f32_e32 vcc, s4, v0
3085- ; SI-SDAG-NEXT: v_cndmask_b32_e64 v2, 0, 32, vcc
3086- ; SI-SDAG-NEXT: v_ldexp_f32_e32 v0, v0, v2
3087- ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0
3088- ; SI-SDAG-NEXT: v_mov_b32_e32 v1, 0xc1b17218
3089- ; SI-SDAG-NEXT: v_cndmask_b32_e32 v1, 0, v1, vcc
3090- ; SI-SDAG-NEXT: s_mov_b32 s4, 0x3f317218
3091- ; SI-SDAG-NEXT: v_fma_f32 v0, v0, s4, v1
3092- ; SI-SDAG-NEXT: s_setpc_b64 s[30:31]
3093- ;
3094- ; SI-GISEL-LABEL: v_log_f32_approx_fn_attr:
3095- ; SI-GISEL: ; %bb.0:
3096- ; SI-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3097- ; SI-GISEL-NEXT: v_log_f32_e32 v2, v0
3098- ; SI-GISEL-NEXT: v_mov_b32_e32 v1, 0x800000
3099- ; SI-GISEL-NEXT: v_mov_b32_e32 v3, 0xc1b17218
3100- ; SI-GISEL-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
3101- ; SI-GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v3, vcc
3102- ; SI-GISEL-NEXT: v_mov_b32_e32 v1, 0x3f317218
3103- ; SI-GISEL-NEXT: v_fma_f32 v0, v2, v1, v0
3104- ; SI-GISEL-NEXT: s_setpc_b64 s[30:31]
3105- ;
3106- ; VI-SDAG-LABEL: v_log_f32_approx_fn_attr:
3107- ; VI-SDAG: ; %bb.0:
3108- ; VI-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3109- ; VI-SDAG-NEXT: s_mov_b32 s4, 0x800000
3110- ; VI-SDAG-NEXT: v_cmp_gt_f32_e32 vcc, s4, v0
3111- ; VI-SDAG-NEXT: v_cndmask_b32_e64 v2, 0, 32, vcc
3112- ; VI-SDAG-NEXT: v_ldexp_f32 v0, v0, v2
3113- ; VI-SDAG-NEXT: v_log_f32_e32 v0, v0
3114- ; VI-SDAG-NEXT: v_mov_b32_e32 v1, 0xc1b17218
3115- ; VI-SDAG-NEXT: v_cndmask_b32_e32 v1, 0, v1, vcc
3116- ; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3f317218, v0
3117- ; VI-SDAG-NEXT: v_add_f32_e32 v0, v0, v1
3118- ; VI-SDAG-NEXT: s_setpc_b64 s[30:31]
3119- ;
3120- ; VI-GISEL-LABEL: v_log_f32_approx_fn_attr:
3121- ; VI-GISEL: ; %bb.0:
3122- ; VI-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3123- ; VI-GISEL-NEXT: v_log_f32_e32 v2, v0
3124- ; VI-GISEL-NEXT: v_mov_b32_e32 v1, 0x800000
3125- ; VI-GISEL-NEXT: v_mov_b32_e32 v3, 0xc1b17218
3126- ; VI-GISEL-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
3127- ; VI-GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v3, vcc
3128- ; VI-GISEL-NEXT: v_mul_f32_e32 v1, 0x3f317218, v2
3129- ; VI-GISEL-NEXT: v_add_f32_e32 v0, v1, v0
3130- ; VI-GISEL-NEXT: s_setpc_b64 s[30:31]
3131- ;
3132- ; GFX900-SDAG-LABEL: v_log_f32_approx_fn_attr:
3133- ; GFX900-SDAG: ; %bb.0:
3134- ; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3135- ; GFX900-SDAG-NEXT: s_mov_b32 s4, 0x800000
3136- ; GFX900-SDAG-NEXT: v_cmp_gt_f32_e32 vcc, s4, v0
3137- ; GFX900-SDAG-NEXT: v_cndmask_b32_e64 v2, 0, 32, vcc
3138- ; GFX900-SDAG-NEXT: v_ldexp_f32 v0, v0, v2
3139- ; GFX900-SDAG-NEXT: v_log_f32_e32 v0, v0
3140- ; GFX900-SDAG-NEXT: v_mov_b32_e32 v1, 0xc1b17218
3141- ; GFX900-SDAG-NEXT: v_cndmask_b32_e32 v1, 0, v1, vcc
3142- ; GFX900-SDAG-NEXT: s_mov_b32 s4, 0x3f317218
3143- ; GFX900-SDAG-NEXT: v_fma_f32 v0, v0, s4, v1
3144- ; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31]
3145- ;
3146- ; GFX900-GISEL-LABEL: v_log_f32_approx_fn_attr:
3147- ; GFX900-GISEL: ; %bb.0:
3148- ; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3149- ; GFX900-GISEL-NEXT: v_log_f32_e32 v2, v0
3150- ; GFX900-GISEL-NEXT: v_mov_b32_e32 v1, 0x800000
3151- ; GFX900-GISEL-NEXT: v_mov_b32_e32 v3, 0xc1b17218
3152- ; GFX900-GISEL-NEXT: v_cmp_lt_f32_e32 vcc, v0, v1
3153- ; GFX900-GISEL-NEXT: v_cndmask_b32_e32 v0, 0, v3, vcc
3154- ; GFX900-GISEL-NEXT: v_mov_b32_e32 v1, 0x3f317218
3155- ; GFX900-GISEL-NEXT: v_fma_f32 v0, v2, v1, v0
3156- ; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31]
3157- ;
3158- ; GFX1100-SDAG-LABEL: v_log_f32_approx_fn_attr:
3159- ; GFX1100-SDAG: ; %bb.0:
3160- ; GFX1100-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3161- ; GFX1100-SDAG-NEXT: v_cmp_gt_f32_e32 vcc_lo, 0x800000, v0
3162- ; GFX1100-SDAG-NEXT: v_cndmask_b32_e64 v2, 0, 32, vcc_lo
3163- ; GFX1100-SDAG-NEXT: v_cndmask_b32_e64 v1, 0, 0xc1b17218, vcc_lo
3164- ; GFX1100-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
3165- ; GFX1100-SDAG-NEXT: v_ldexp_f32 v0, v0, v2
3166- ; GFX1100-SDAG-NEXT: v_log_f32_e32 v0, v0
3167- ; GFX1100-SDAG-NEXT: s_waitcnt_depctr 0xfff
3168- ; GFX1100-SDAG-NEXT: v_fmamk_f32 v0, v0, 0x3f317218, v1
3169- ; GFX1100-SDAG-NEXT: s_setpc_b64 s[30:31]
3170- ;
3171- ; GFX1100-GISEL-LABEL: v_log_f32_approx_fn_attr:
3172- ; GFX1100-GISEL: ; %bb.0:
3173- ; GFX1100-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3174- ; GFX1100-GISEL-NEXT: v_log_f32_e32 v1, v0
3175- ; GFX1100-GISEL-NEXT: v_cmp_gt_f32_e32 vcc_lo, 0x800000, v0
3176- ; GFX1100-GISEL-NEXT: v_cndmask_b32_e64 v0, 0, 0xc1b17218, vcc_lo
3177- ; GFX1100-GISEL-NEXT: s_waitcnt_depctr 0xfff
3178- ; GFX1100-GISEL-NEXT: v_fmac_f32_e32 v0, 0x3f317218, v1
3179- ; GFX1100-GISEL-NEXT: s_setpc_b64 s[30:31]
3180- ;
3181- ; R600-LABEL: v_log_f32_approx_fn_attr:
3182- ; R600: ; %bb.0:
3183- ; R600-NEXT: CF_END
3184- ; R600-NEXT: PAD
3185- ;
3186- ; CM-LABEL: v_log_f32_approx_fn_attr:
3187- ; CM: ; %bb.0:
3188- ; CM-NEXT: CF_END
3189- ; CM-NEXT: PAD
3190- %result = call float @llvm.log.f32 (float %in )
3191- ret float %result
3192- }
3193-
31943079define float @v_log_f32_ninf (float %in ) {
31953080; SI-SDAG-LABEL: v_log_f32_ninf:
31963081; SI-SDAG: ; %bb.0:
0 commit comments