Whoever defines the Intel mm* intrinsics needs to sit down more with a) the people who spec the instructions b) the people who implement the compilers. Many of the intrinsics (especially newer ones) are a really bad match for the underlying instrs and effetively sabotage them.
-
Show this thread
-
Simultaneously, they are _also_ a really bad match for the underlying language semantics in a way that causes problems.
1 reply 1 retweet 10 likesShow this thread -
Example 1: the only way to express a 32-bit sized integer load into say a 128-bit reg (MOVD instr in ASM) is via _mm_cvtsi32_si128 of an int _value_; this requires either a (illegal!) cast of the ptr to int* and deref-ing it, or memcpy and hoping it gets optimized away.
4 replies 1 retweet 11 likesShow this thread -
Replying to @rygorous
Unpopular opinion: compilers should deprecate them all & document how to write equivalent high level code they can effectively vectorize.
1 reply 0 retweets 0 likes
As it stands now, proper use of inline asm constraints is more expressive & less incorrect/UB than the intrinsics mess.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.