www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - iasm, lzcnt and tznct are not recognized

reply Basile B. <b2.temp gmx.com> writes:
lzcnt and tznct are not recognized.
DMD accept them.
Feb 25 2020
parent reply kinke <noone nowhere.com> writes:
On Tuesday, 25 February 2020 at 21:18:48 UTC, Basile B. wrote:
 lzcnt and tznct are not recognized.
 DMD accept them.
I guess you mean in DMD-style inline asm; that part doesn't see much love. LDC-style __asm provides all of them, at least as long as using appropriate -mcpu/-mattr switches. Looks like you're trying to manually optimize bsf/bsr; I'd advise against that, standard core.bitop generates exactly these 2 instructions: https://d.godbolt.org/z/PG8GiU
Feb 25 2020
parent Basile B. <b2.temp gmx.com> writes:
On Wednesday, 26 February 2020 at 03:07:22 UTC, kinke wrote:
 On Tuesday, 25 February 2020 at 21:18:48 UTC, Basile B. wrote:
 lzcnt and tznct are not recognized.
 DMD accept them.
I guess you mean in DMD-style inline asm; that part doesn't see much love. LDC-style __asm provides all of them, at least as long as using appropriate -mcpu/-mattr switches. Looks like you're trying to manually optimize bsf/bsr; I'd advise against that, standard core.bitop generates exactly these 2 instructions: https://d.godbolt.org/z/PG8GiU
indeed -mcpu solves the problem.
Feb 26 2020