Index: llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp =================================================================== --- llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -1305,9 +1305,9 @@ case ISD::FROUND: return LowerFROUND(Op, DAG); case ISD::FFLOOR: return LowerFFLOOR(Op, DAG); case ISD::FLOG: - return LowerFLOG(Op, DAG, numbers::ln2f); + return LowerFLOG(Op, DAG, numbers::ln2); case ISD::FLOG10: - return LowerFLOG(Op, DAG, numbers::ln2f / numbers::ln10f); + return LowerFLOG(Op, DAG, numbers::ln2 / numbers::ln10); case ISD::FEXP: return lowerFEXP(Op, DAG); case ISD::SINT_TO_FP: return LowerSINT_TO_FP(Op, DAG); Index: llvm/test/CodeGen/AMDGPU/llvm.log10.ll =================================================================== --- llvm/test/CodeGen/AMDGPU/llvm.log10.ll +++ llvm/test/CodeGen/AMDGPU/llvm.log10.ll @@ -10,29 +10,53 @@ ; RUN: llc -march=r600 -mcpu=cayman < %s | FileCheck -check-prefix=CM %s define amdgpu_kernel void @s_log10_f32(ptr addrspace(1) %out, float %in) { -; SI-LABEL: s_log10_f32: -; SI: ; %bb.0: -; SI-NEXT: s_load_dword s2, s[0:1], 0xb -; SI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 -; SI-NEXT: s_mov_b32 s3, 0xf000 -; SI-NEXT: s_waitcnt lgkmcnt(0) -; SI-NEXT: v_log_f32_e32 v0, s2 -; SI-NEXT: s_mov_b32 s2, -1 -; SI-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -; SI-NEXT: s_endpgm -; -; VI-LABEL: s_log10_f32: -; VI: ; %bb.0: -; VI-NEXT: s_load_dword s2, s[0:1], 0x2c -; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 -; VI-NEXT: s_waitcnt lgkmcnt(0) -; VI-NEXT: v_log_f32_e32 v0, s2 -; VI-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v0 -; VI-NEXT: v_mov_b32_e32 v0, s0 -; VI-NEXT: v_mov_b32_e32 v1, s1 -; VI-NEXT: flat_store_dword v[0:1], v2 -; VI-NEXT: s_endpgm +; SI-SDAG-LABEL: s_log10_f32: +; SI-SDAG: ; %bb.0: +; SI-SDAG-NEXT: s_load_dword s2, s[0:1], 0xb +; SI-SDAG-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 +; SI-SDAG-NEXT: s_mov_b32 s3, 0xf000 +; SI-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SI-SDAG-NEXT: v_log_f32_e32 v0, s2 +; SI-SDAG-NEXT: s_mov_b32 s2, -1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: buffer_store_dword v0, off, s[0:3], 0 +; SI-SDAG-NEXT: s_endpgm +; +; SI-GISEL-LABEL: s_log10_f32: +; SI-GISEL: ; %bb.0: +; SI-GISEL-NEXT: s_load_dword s2, s[0:1], 0xb +; SI-GISEL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 +; SI-GISEL-NEXT: s_mov_b32 s3, 0xf000 +; SI-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; SI-GISEL-NEXT: v_log_f32_e32 v0, s2 +; SI-GISEL-NEXT: s_mov_b32 s2, -1 +; SI-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-GISEL-NEXT: buffer_store_dword v0, off, s[0:3], 0 +; SI-GISEL-NEXT: s_endpgm +; +; VI-SDAG-LABEL: s_log10_f32: +; VI-SDAG: ; %bb.0: +; VI-SDAG-NEXT: s_load_dword s2, s[0:1], 0x2c +; VI-SDAG-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 +; VI-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; VI-SDAG-NEXT: v_log_f32_e32 v0, s2 +; VI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v0 +; VI-SDAG-NEXT: v_mov_b32_e32 v0, s0 +; VI-SDAG-NEXT: v_mov_b32_e32 v1, s1 +; VI-SDAG-NEXT: flat_store_dword v[0:1], v2 +; VI-SDAG-NEXT: s_endpgm +; +; VI-GISEL-LABEL: s_log10_f32: +; VI-GISEL: ; %bb.0: +; VI-GISEL-NEXT: s_load_dword s2, s[0:1], 0x2c +; VI-GISEL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 +; VI-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; VI-GISEL-NEXT: v_log_f32_e32 v0, s2 +; VI-GISEL-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v0 +; VI-GISEL-NEXT: v_mov_b32_e32 v0, s0 +; VI-GISEL-NEXT: v_mov_b32_e32 v1, s1 +; VI-GISEL-NEXT: flat_store_dword v[0:1], v2 +; VI-GISEL-NEXT: s_endpgm ; ; GFX900-SDAG-LABEL: s_log10_f32: ; GFX900-SDAG: ; %bb.0: @@ -41,7 +65,7 @@ ; GFX900-SDAG-NEXT: v_mov_b32_e32 v1, 0 ; GFX900-SDAG-NEXT: s_waitcnt lgkmcnt(0) ; GFX900-SDAG-NEXT: v_log_f32_e32 v0, s4 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; GFX900-SDAG-NEXT: global_store_dword v1, v0, s[2:3] ; GFX900-SDAG-NEXT: s_endpgm ; @@ -66,7 +90,7 @@ ; R600-NEXT: LOG_IEEE * T0.X, KC0[2].Z, ; R600-NEXT: MUL_IEEE T0.X, PS, literal.x, ; R600-NEXT: LSHR * T1.X, KC0[2].Y, literal.y, -; R600-NEXT: 1050288282(3.010300e-01), 2(2.802597e-45) +; R600-NEXT: 1050288283(3.010300e-01), 2(2.802597e-45) ; ; CM-LABEL: s_log10_f32: ; CM: ; %bb.0: @@ -80,7 +104,7 @@ ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[2].Z, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[2].Z, ; CM-NEXT: MUL_IEEE * T0.X, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, ; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00) %result = call float @llvm.log10.f32(float %in) @@ -101,8 +125,8 @@ ; SI-SDAG-NEXT: v_log_f32_e32 v2, s2 ; SI-SDAG-NEXT: s_mov_b32 s4, s0 ; SI-SDAG-NEXT: s_mov_b32 s5, s1 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v2 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v2 ; SI-SDAG-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 ; SI-SDAG-NEXT: s_endpgm ; @@ -125,8 +149,8 @@ ; VI-SDAG-NEXT: s_waitcnt lgkmcnt(0) ; VI-SDAG-NEXT: v_log_f32_e32 v0, s3 ; VI-SDAG-NEXT: v_log_f32_e32 v2, s2 -; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v0 -; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v2 +; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v0 +; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v2 ; VI-SDAG-NEXT: v_mov_b32_e32 v3, s1 ; VI-SDAG-NEXT: v_mov_b32_e32 v2, s0 ; VI-SDAG-NEXT: flat_store_dwordx2 v[2:3], v[0:1] @@ -152,8 +176,8 @@ ; GFX900-SDAG-NEXT: s_waitcnt lgkmcnt(0) ; GFX900-SDAG-NEXT: v_log_f32_e32 v0, s3 ; GFX900-SDAG-NEXT: v_log_f32_e32 v2, s2 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v0 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v2 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v0 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v2 ; GFX900-SDAG-NEXT: global_store_dwordx2 v3, v[0:1], s[0:1] ; GFX900-SDAG-NEXT: s_endpgm ; @@ -179,10 +203,10 @@ ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].X, ; R600-NEXT: MUL_IEEE T0.Y, PS, literal.x, ; R600-NEXT: LOG_IEEE * T0.X, KC0[2].W, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE T0.X, PS, literal.x, ; R600-NEXT: LSHR * T1.X, KC0[2].Y, literal.y, -; R600-NEXT: 1050288282(3.010300e-01), 2(2.802597e-45) +; R600-NEXT: 1050288283(3.010300e-01), 2(2.802597e-45) ; ; CM-LABEL: s_log10_v2f32: ; CM: ; %bb.0: @@ -196,13 +220,13 @@ ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[3].X, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].X, ; CM-NEXT: MUL_IEEE * T0.Y, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LOG_IEEE T0.X, KC0[2].W, ; CM-NEXT: LOG_IEEE T0.Y (MASKED), KC0[2].W, ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[2].W, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[2].W, ; CM-NEXT: MUL_IEEE * T0.X, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, ; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00) %result = call <2 x float> @llvm.log10.v2f32(<2 x float> %in) @@ -221,9 +245,9 @@ ; SI-SDAG-NEXT: v_log_f32_e32 v0, s5 ; SI-SDAG-NEXT: v_log_f32_e32 v2, s4 ; SI-SDAG-NEXT: v_log_f32_e32 v3, s6 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v2 -; SI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v3 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v2 +; SI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v3 ; SI-SDAG-NEXT: buffer_store_dword v2, off, s[0:3], 0 offset:8 ; SI-SDAG-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 ; SI-SDAG-NEXT: s_endpgm @@ -253,10 +277,10 @@ ; VI-SDAG-NEXT: v_log_f32_e32 v0, s6 ; VI-SDAG-NEXT: v_log_f32_e32 v3, s4 ; VI-SDAG-NEXT: v_log_f32_e32 v1, s5 -; VI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v0 -; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v3 +; VI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v0 +; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v3 ; VI-SDAG-NEXT: v_mov_b32_e32 v4, s1 -; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; VI-SDAG-NEXT: v_mov_b32_e32 v3, s0 ; VI-SDAG-NEXT: flat_store_dwordx3 v[3:4], v[0:2] ; VI-SDAG-NEXT: s_endpgm @@ -286,9 +310,9 @@ ; GFX900-SDAG-NEXT: v_log_f32_e32 v0, s6 ; GFX900-SDAG-NEXT: v_log_f32_e32 v1, s5 ; GFX900-SDAG-NEXT: v_log_f32_e32 v3, s4 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v0 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v3 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v0 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v3 ; GFX900-SDAG-NEXT: global_store_dwordx3 v4, v[0:2], s[2:3] ; GFX900-SDAG-NEXT: s_endpgm ; @@ -317,17 +341,17 @@ ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].Z, ; R600-NEXT: MUL_IEEE T0.Y, PS, literal.x, ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].Y, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE T0.X, PS, literal.x, ; R600-NEXT: LSHR * T1.X, KC0[2].Y, literal.y, -; R600-NEXT: 1050288282(3.010300e-01), 2(2.802597e-45) +; R600-NEXT: 1050288283(3.010300e-01), 2(2.802597e-45) ; R600-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x, ; R600-NEXT: 8(1.121039e-44), 0(0.000000e+00) ; R600-NEXT: LSHR T2.X, PV.W, literal.x, ; R600-NEXT: LOG_IEEE * T0.Z, KC0[3].W, ; R600-NEXT: 2(2.802597e-45), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE * T3.X, PS, literal.x, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; ; CM-LABEL: s_log10_v3f32: ; CM: ; %bb.0: @@ -350,13 +374,13 @@ ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].W, ; CM-NEXT: MUL_IEEE T1.X, PV.Z, literal.x, ; CM-NEXT: MUL_IEEE * T2.Y, T0.Y, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LOG_IEEE T0.X (MASKED), KC0[3].Y, ; CM-NEXT: LOG_IEEE T0.Y, KC0[3].Y, ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[3].Y, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].Y, ; CM-NEXT: MUL_IEEE * T2.X, PV.Y, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LSHR * T3.X, KC0[2].Y, literal.x, ; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00) %result = call <3 x float> @llvm.log10.v3f32(<3 x float> %in) @@ -378,10 +402,10 @@ ; SI-SDAG-NEXT: v_log_f32_e32 v1, s6 ; SI-SDAG-NEXT: v_log_f32_e32 v4, s5 ; SI-SDAG-NEXT: v_log_f32_e32 v5, s4 -; SI-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v4 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v5 +; SI-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v4 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v5 ; SI-SDAG-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 ; SI-SDAG-NEXT: s_endpgm ; @@ -412,10 +436,10 @@ ; VI-SDAG-NEXT: v_log_f32_e32 v1, s6 ; VI-SDAG-NEXT: v_log_f32_e32 v4, s5 ; VI-SDAG-NEXT: v_log_f32_e32 v5, s4 -; VI-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209a, v0 -; VI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v1 -; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v4 -; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v5 +; VI-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209b, v0 +; VI-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v1 +; VI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v4 +; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v5 ; VI-SDAG-NEXT: v_mov_b32_e32 v5, s1 ; VI-SDAG-NEXT: v_mov_b32_e32 v4, s0 ; VI-SDAG-NEXT: flat_store_dwordx4 v[4:5], v[0:3] @@ -449,10 +473,10 @@ ; GFX900-SDAG-NEXT: v_log_f32_e32 v1, s6 ; GFX900-SDAG-NEXT: v_log_f32_e32 v5, s5 ; GFX900-SDAG-NEXT: v_log_f32_e32 v6, s4 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209a, v0 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209a, v1 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v5 -; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v6 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v3, 0x3e9a209b, v0 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v2, 0x3e9a209b, v1 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v5 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v6 ; GFX900-SDAG-NEXT: global_store_dwordx4 v4, v[0:3], s[2:3] ; GFX900-SDAG-NEXT: s_endpgm ; @@ -483,16 +507,16 @@ ; R600-NEXT: LOG_IEEE * T0.X, KC0[4].X, ; R600-NEXT: MUL_IEEE T0.W, PS, literal.x, ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].W, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE T0.Z, PS, literal.x, ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].Z, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE T0.Y, PS, literal.x, ; R600-NEXT: LOG_IEEE * T0.X, KC0[3].Y, -; R600-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; R600-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; R600-NEXT: MUL_IEEE T0.X, PS, literal.x, ; R600-NEXT: LSHR * T1.X, KC0[2].Y, literal.y, -; R600-NEXT: 1050288282(3.010300e-01), 2(2.802597e-45) +; R600-NEXT: 1050288283(3.010300e-01), 2(2.802597e-45) ; ; CM-LABEL: s_log10_v4f32: ; CM: ; %bb.0: @@ -506,25 +530,25 @@ ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[4].X, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[4].X, ; CM-NEXT: MUL_IEEE * T0.W, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LOG_IEEE T0.X, KC0[3].W, ; CM-NEXT: LOG_IEEE T0.Y (MASKED), KC0[3].W, ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[3].W, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].W, ; CM-NEXT: MUL_IEEE * T0.Z, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LOG_IEEE T0.X, KC0[3].Z, ; CM-NEXT: LOG_IEEE T0.Y (MASKED), KC0[3].Z, ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[3].Z, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].Z, ; CM-NEXT: MUL_IEEE * T0.Y, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LOG_IEEE T0.X, KC0[3].Y, ; CM-NEXT: LOG_IEEE T0.Y (MASKED), KC0[3].Y, ; CM-NEXT: LOG_IEEE T0.Z (MASKED), KC0[3].Y, ; CM-NEXT: LOG_IEEE * T0.W (MASKED), KC0[3].Y, ; CM-NEXT: MUL_IEEE * T0.X, PV.X, literal.x, -; CM-NEXT: 1050288282(3.010300e-01), 0(0.000000e+00) +; CM-NEXT: 1050288283(3.010300e-01), 0(0.000000e+00) ; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, ; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00) %result = call <4 x float> @llvm.log10.v4f32(<4 x float> %in) @@ -533,12 +557,19 @@ } define float @v_log10_f32(float %in) { -; GCN-LABEL: v_log10_f32: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32: ; R600: ; %bb.0: @@ -554,12 +585,19 @@ } define float @v_log10_fabs_f32(float %in) { -; GCN-LABEL: v_log10_fabs_f32: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e64 v0, |v0| -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_fabs_f32: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e64 v0, |v0| +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_fabs_f32: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e64 v0, |v0| +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_fabs_f32: ; R600: ; %bb.0: @@ -576,12 +614,19 @@ } define float @v_log10_fneg_fabs_f32(float %in) { -; GCN-LABEL: v_log10_fneg_fabs_f32: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e64 v0, -|v0| -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_fneg_fabs_f32: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e64 v0, -|v0| +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_fneg_fabs_f32: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e64 v0, -|v0| +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_fneg_fabs_f32: ; R600: ; %bb.0: @@ -599,12 +644,19 @@ } define float @v_log10_fneg_f32(float %in) { -; GCN-LABEL: v_log10_fneg_f32: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e64 v0, -v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_fneg_f32: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e64 v0, -v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_fneg_f32: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e64 v0, -v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_fneg_f32: ; R600: ; %bb.0: @@ -621,12 +673,19 @@ } define float @v_log10_f32_fast(float %in) { -; GCN-LABEL: v_log10_f32_fast: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_fast: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_fast: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_fast: ; R600: ; %bb.0: @@ -642,12 +701,19 @@ } define float @v_log10_f32_unsafe_math_attr(float %in) "unsafe-fp-math"="true" { -; GCN-LABEL: v_log10_f32_unsafe_math_attr: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_unsafe_math_attr: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_unsafe_math_attr: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_unsafe_math_attr: ; R600: ; %bb.0: @@ -663,12 +729,19 @@ } define float @v_log10_f32_approx_fn_attr(float %in) "approx-func-fp-math"="true" { -; GCN-LABEL: v_log10_f32_approx_fn_attr: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_approx_fn_attr: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_approx_fn_attr: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_approx_fn_attr: ; R600: ; %bb.0: @@ -684,12 +757,19 @@ } define float @v_log10_f32_ninf(float %in) { -; GCN-LABEL: v_log10_f32_ninf: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_ninf: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_ninf: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_ninf: ; R600: ; %bb.0: @@ -705,12 +785,19 @@ } define float @v_log10_f32_afn(float %in) { -; GCN-LABEL: v_log10_f32_afn: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_afn: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_afn: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_afn: ; R600: ; %bb.0: @@ -726,12 +813,19 @@ } define float @v_log10_f32_afn_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_afn_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_afn_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_afn_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_afn_daz: ; R600: ; %bb.0: @@ -747,12 +841,19 @@ } define float @v_log10_f32_afn_dynamic(float %in) #1 { -; GCN-LABEL: v_log10_f32_afn_dynamic: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_afn_dynamic: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_afn_dynamic: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_afn_dynamic: ; R600: ; %bb.0: @@ -768,12 +869,19 @@ } define float @v_fabs_log10_f32_afn(float %in) { -; GCN-LABEL: v_fabs_log10_f32_afn: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e64 v0, |v0| -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_fabs_log10_f32_afn: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e64 v0, |v0| +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_fabs_log10_f32_afn: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e64 v0, |v0| +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_fabs_log10_f32_afn: ; R600: ; %bb.0: @@ -790,12 +898,19 @@ } define float @v_log10_f32_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_daz: ; R600: ; %bb.0: @@ -811,12 +926,19 @@ } define float @v_log10_f32_nnan(float %in) { -; GCN-LABEL: v_log10_f32_nnan: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan: ; R600: ; %bb.0: @@ -832,12 +954,19 @@ } define float @v_log10_f32_nnan_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_nnan_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan_daz: ; R600: ; %bb.0: @@ -853,12 +982,19 @@ } define float @v_log10_f32_nnan_dynamic(float %in) #1 { -; GCN-LABEL: v_log10_f32_nnan_dynamic: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan_dynamic: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan_dynamic: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan_dynamic: ; R600: ; %bb.0: @@ -874,12 +1010,19 @@ } define float @v_log10_f32_ninf_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_ninf_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_ninf_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_ninf_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_ninf_daz: ; R600: ; %bb.0: @@ -895,12 +1038,19 @@ } define float @v_log10_f32_ninf_dynamic(float %in) #1 { -; GCN-LABEL: v_log10_f32_ninf_dynamic: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_ninf_dynamic: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_ninf_dynamic: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_ninf_dynamic: ; R600: ; %bb.0: @@ -916,12 +1066,19 @@ } define float @v_log10_f32_nnan_ninf(float %in) { -; GCN-LABEL: v_log10_f32_nnan_ninf: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan_ninf: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan_ninf: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan_ninf: ; R600: ; %bb.0: @@ -937,12 +1094,19 @@ } define float @v_log10_f32_nnan_ninf_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_nnan_ninf_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan_ninf_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan_ninf_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan_ninf_daz: ; R600: ; %bb.0: @@ -958,12 +1122,19 @@ } define float @v_log10_f32_nnan_ninf_dynamic(float %in) #1 { -; GCN-LABEL: v_log10_f32_nnan_ninf_dynamic: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_nnan_ninf_dynamic: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_nnan_ninf_dynamic: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_nnan_ninf_dynamic: ; R600: ; %bb.0: @@ -979,12 +1150,19 @@ } define float @v_log10_f32_fast_daz(float %in) #0 { -; GCN-LABEL: v_log10_f32_fast_daz: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_fast_daz: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_fast_daz: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_fast_daz: ; R600: ; %bb.0: @@ -1000,12 +1178,19 @@ } define float @v_log10_f32_dynamic_mode(float %in) #1 { -; GCN-LABEL: v_log10_f32_dynamic_mode: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_dynamic_mode: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_dynamic_mode: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_dynamic_mode: ; R600: ; %bb.0: @@ -1021,12 +1206,19 @@ } define float @v_log10_f32_undef() { -; GCN-LABEL: v_log10_f32_undef: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_log_f32_e32 v0, s4 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_undef: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_log_f32_e32 v0, s4 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_undef: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_log_f32_e32 v0, s4 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_undef: ; R600: ; %bb.0: @@ -1046,7 +1238,7 @@ ; GCN-SDAG: ; %bb.0: ; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; GCN-SDAG-NEXT: v_log_f32_e32 v0, 0 -; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; GCN-GISEL-LABEL: v_log10_f32_0: @@ -1070,13 +1262,21 @@ } define float @v_log10_f32_from_fpext_f16(i16 %src.i) { -; GCN-LABEL: v_log10_f32_from_fpext_f16: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_cvt_f32_f16_e32 v0, v0 -; GCN-NEXT: v_log_f32_e32 v0, v0 -; GCN-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GCN-NEXT: s_setpc_b64 s[30:31] +; GCN-SDAG-LABEL: v_log10_f32_from_fpext_f16: +; GCN-SDAG: ; %bb.0: +; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GCN-GISEL-LABEL: v_log10_f32_from_fpext_f16: +; GCN-GISEL: ; %bb.0: +; GCN-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GCN-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GCN-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_from_fpext_f16: ; R600: ; %bb.0: @@ -1101,7 +1301,7 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1 ; SI-SDAG-NEXT: v_add_f32_e32 v0, v0, v1 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_f32_from_fpext_math_f16: @@ -1116,23 +1316,41 @@ ; SI-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 ; SI-GISEL-NEXT: s_setpc_b64 s[30:31] ; -; VI-LABEL: v_log10_f32_from_fpext_math_f16: -; VI: ; %bb.0: -; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; VI-NEXT: v_add_f16_e32 v0, v0, v1 -; VI-NEXT: v_cvt_f32_f16_e32 v0, v0 -; VI-NEXT: v_log_f32_e32 v0, v0 -; VI-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; VI-NEXT: s_setpc_b64 s[30:31] +; VI-SDAG-LABEL: v_log10_f32_from_fpext_math_f16: +; VI-SDAG: ; %bb.0: +; VI-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; VI-SDAG-NEXT: v_add_f16_e32 v0, v0, v1 +; VI-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 +; VI-SDAG-NEXT: v_log_f32_e32 v0, v0 +; VI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; VI-SDAG-NEXT: s_setpc_b64 s[30:31] ; -; GFX900-LABEL: v_log10_f32_from_fpext_math_f16: -; GFX900: ; %bb.0: -; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GFX900-NEXT: v_add_f16_e32 v0, v0, v1 -; GFX900-NEXT: v_cvt_f32_f16_e32 v0, v0 -; GFX900-NEXT: v_log_f32_e32 v0, v0 -; GFX900-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; GFX900-NEXT: s_setpc_b64 s[30:31] +; VI-GISEL-LABEL: v_log10_f32_from_fpext_math_f16: +; VI-GISEL: ; %bb.0: +; VI-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; VI-GISEL-NEXT: v_add_f16_e32 v0, v0, v1 +; VI-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0 +; VI-GISEL-NEXT: v_log_f32_e32 v0, v0 +; VI-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; VI-GISEL-NEXT: s_setpc_b64 s[30:31] +; +; GFX900-SDAG-LABEL: v_log10_f32_from_fpext_math_f16: +; GFX900-SDAG: ; %bb.0: +; GFX900-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX900-SDAG-NEXT: v_add_f16_e32 v0, v0, v1 +; GFX900-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX900-SDAG-NEXT: v_log_f32_e32 v0, v0 +; GFX900-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; GFX900-SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GFX900-GISEL-LABEL: v_log10_f32_from_fpext_math_f16: +; GFX900-GISEL: ; %bb.0: +; GFX900-GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX900-GISEL-NEXT: v_add_f16_e32 v0, v0, v1 +; GFX900-GISEL-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX900-GISEL-NEXT: v_log_f32_e32 v0, v0 +; GFX900-GISEL-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GFX900-GISEL-NEXT: s_setpc_b64 s[30:31] ; ; R600-LABEL: v_log10_f32_from_fpext_math_f16: ; R600: ; %bb.0: @@ -1156,7 +1374,7 @@ ; GCN-SDAG: ; %bb.0: ; GCN-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; GCN-SDAG-NEXT: v_log_f32_e32 v0, v0 -; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; GCN-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; GCN-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; GCN-GISEL-LABEL: v_log10_f32_from_fpext_bf16: @@ -1188,7 +1406,7 @@ ; SI-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_f16: @@ -1234,7 +1452,7 @@ ; SI-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_cvt_f32_f16_e64 v0, |v0| ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fabs_f16: @@ -1281,7 +1499,7 @@ ; SI-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_cvt_f32_f16_e64 v0, -|v0| ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fneg_fabs_f16: @@ -1329,7 +1547,7 @@ ; SI-SDAG-NEXT: v_cvt_f16_f32_e64 v0, -v0 ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fneg_f16: @@ -1376,7 +1594,7 @@ ; SI-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_f16_fast: @@ -1425,8 +1643,8 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v1, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_v2f16: @@ -1497,8 +1715,8 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e64 v1, |v1| ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v1, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fabs_v2f16: @@ -1591,8 +1809,8 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v1, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fneg_fabs_v2f16: @@ -1686,8 +1904,8 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v1, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_fneg_v2f16: @@ -1776,8 +1994,8 @@ ; SI-SDAG-NEXT: v_cvt_f32_f16_e32 v1, v1 ; SI-SDAG-NEXT: v_log_f32_e32 v0, v0 ; SI-SDAG-NEXT: v_log_f32_e32 v1, v1 -; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209a, v0 -; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209a, v1 +; SI-SDAG-NEXT: v_mul_f32_e32 v0, 0x3e9a209b, v0 +; SI-SDAG-NEXT: v_mul_f32_e32 v1, 0x3e9a209b, v1 ; SI-SDAG-NEXT: s_setpc_b64 s[30:31] ; ; SI-GISEL-LABEL: v_log10_v2f16_fast: @@ -1851,3 +2069,6 @@ attributes #0 = { "denormal-fp-math-f32"="ieee,preserve-sign" } attributes #1 = { "denormal-fp-math-f32"="dynamic,dynamic" } attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; GCN: {{.*}} +; SI: {{.*}}