search for: ytgk7l

Displaying 4 results from an estimated 4 matches for "ytgk7l".

2017 May 11
2
FENV_ACCESS and floating point LibFunc calls
...to how the lowering of SELECT can be controlled. i.e. where LLVM decides whether and how to lower a select node as a branch vs predicate logic. I’d almost forgotten that we microbenchmarked this and found the branching version is faster with regular input (< LLONG_MAX). - https://godbolt.org/g/ytgk7l All, Where does LLVM decide to lower select as predicate logic vs branches and how does the cost model work? I’m curious about a tuning flag to generate branches instead of computing both values and using conditional moves… Best, Michael. > On 11 May 2017, at 11:41 AM, via llvm-dev <llvm-d...
2017 May 11
3
FENV_ACCESS and floating point LibFunc calls
...i.e. where LLVM decides whether and how to lower a select > node as a branch vs predicate logic. > > > > I’d almost forgotten that we microbenchmarked this and found the branching > version is faster with regular input (< LLONG_MAX). > > > > - https://godbolt.org/g/ytgk7l > > All, Where does LLVM decide to lower select as predicate logic vs branches > and how does the cost model work? I’m curious about a tuning flag to > generate branches instead of computing both values and using conditional > moves… > > > > Best, > > Michael. >...
2017 May 11
2
FENV_ACCESS and floating point LibFunc calls
...i.e. where LLVM decides whether and how to lower a select > node as a branch vs predicate logic. > > > > I’d almost forgotten that we microbenchmarked this and found the branching > version is faster with regular input (< LLONG_MAX). > > > > - https://godbolt.org/g/ytgk7l > > All, Where does LLVM decide to lower select as predicate logic vs branches > and how does the cost model work? I’m curious about a tuning flag to > generate branches instead of computing both values and using conditional > moves… > > > > Best, > > Michael. >...
2017 Apr 21
2
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
I think it’s generally true that whenever branches can reliably be predicted branching is faster than a cmov that involves speculative execution, and I would guess that your assessment regarding looping on input values is probably correct. I believe the code that actually creates most of the transformation you’re interested in here is in SelectionDAGLegalize::ExpandNode() in LegalizeDAG.cpp. The