What about vfsnjn ? Do they have FRM ? I want to double check it since I don't trust document. juzhe.zhong@rivai.ai From: Kito Cheng Date: 2023-05-15 22:22 To: 钟居哲 CC: Jeff Law; gcc-patches; kito.cheng; palmer; palmer; rdapp.gcc Subject: Re: Re: [PATCH] RISC-V: Add rounding mode operand for floating point instructions > Oh, do you mean vfsqrt7/vfrec7 doesn't have frm, but vfsqrt/vfneg should have frm. > Is that rigth? If yes, I am gonna send a patch to fix it immediately. Yes, and I also double checked spike implementation :P and it seems like you're not committed yet, so let's send V2 :) On Mon, May 15, 2023 at 10:12 PM 钟居哲 wrote: > > Oh, do you mean vfsqrt7/vfrec7 doesn't have frm, but vfsqrt/vfneg should have frm. > Is that rigth? If yes, I am gonna send a patch to fix it immediately. > > > > juzhe.zhong@rivai.ai > > From: Kito Cheng > Date: 2023-05-15 22:07 > To: 钟居哲 > CC: Jeff Law; gcc-patches; kito.cheng; palmer; palmer; rdapp.gcc > Subject: Re: Re: [PATCH] RISC-V: Add rounding mode operand for floating point instructions > Oh, Craig says vfrsqrt7.v not have frm but vsqrt.v have frm, and > checked spike that match that. > > On Mon, May 15, 2023 at 9:55 PM 钟居哲 wrote: > > > > I don't know why we should not add frm vfsqrt.v since I saw topper (LLVM maintainer) said we should > > not add frm into vsqrt.v. Maybe kito knows the reason ? > > > > https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/226 > > > > > > > > > > juzhe.zhong@rivai.ai > > > > From: Jeff Law > > Date: 2023-05-15 21:52 > > To: juzhe.zhong; gcc-patches > > CC: kito.cheng; kito.cheng; palmer; palmer; rdapp.gcc > > Subject: Re: [PATCH] RISC-V: Add rounding mode operand for floating point instructions > > > > > > On 5/15/23 05:49, juzhe.zhong@rivai.ai wrote: > > > From: Juzhe-Zhong > > > > > > This patch is adding rounding mode operand and FRM_REGNUM dependency > > > into floating-point instructions. > > > > > > The floating-point instructions we added FRM and rounding mode operand: > > > 1. vfadd/vfsub > > > 2. vfwadd/vfwsub > > > 3. vfmul > > > 4. vfdiv > > > 5. vfwmul > > > 6. vfwmacc/vfwnmacc/vfwmsac/vfwnmsac > > > 7. vfsqrt7/vfrec7 > > > 8. floating-point conversions. > > > 9. floating-point reductions. > > > > > > The floating-point instructions we did NOT add FRM and rounding mode operand: > > > 1. vfsqrt/vfneg > > Assuming vfsqrt is actually an estimator the best place to handle > > rounding modes is at the last step(s) after N-R or Goldschmidt > > refinement steps. I haven't paid too much attention to FP yet, but this > > is an area I've got fairly extensive experience. > > > > Sadly RISC-V's estimator is fairly poor and the single instance FMACs > > are going to result in an implementation that may not actually be any > > better than what glibc can do. > > > > Jeff > > >