[PATCH] D12052: [X86][SSE] Add _mm_undefined_* intrinsics
David Majnemer via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 16 01:13:59 PDT 2015
majnemer added a subscriber: majnemer.
majnemer added a comment.
In http://reviews.llvm.org/D12052#225194, @mkuper wrote:
> Thanks, Simon!
> I've wanted to add the _undefined intrinsics for a while now, but never got to it.
> Anyway, this sort of implementation somewhat worries me.
> Yes, I know that the gcc intrinsics do something very similar.
> And I also know that in practice we'll get an undef value, nothing worse (assuming reading an uninitialized automatic variable is undefined behavior to begin with - which really depends on the spec interpretation :-) ).
> And I know this isn't likely to change anytime soon.
> Still, relying on what may be undefined behavior in the header files worries me, and I'd rather not have it implemented like that.
> I was thinking about adding a __builtin_undef which explicitly resolves to an undef value.
> Does that make sense to you?
`__builtin_undef` seems like a pretty big hammer and does not sound trivial to implement. Not all types that can be emitted have an `undef` representation. For example, `x86_mmx` doesn't have an `undef` representation because there can be no constants of that type. I'd recommend a more narrow implementation technique unless we really need a more general one.
More information about the cfe-commits