Displaying 6 results from an estimated 6 matches for "x86_sse42_crc32_64_64".
2014 Jun 17
4
[LLVMdev] Attaching range metadata to IntrinsicInst
...;
> So you're saying that in this particular case you'd prefer LLVM passes to
> know about the range of these PTX intrinsics, rather than Clang adding them
> as metadata?
>
Yep.
ValueTracking.cpp already has some iffy target knowledge (someone sneaked a
> direct Intrinsic::x86_sse42_crc32_64_64 check in there), but extending it
> to other intrinsics in other targets seems like too much...
>
That's not iffy. That's exactly how it should work, and we should have more
of that. There is a major gotcha and that's dealing with the case where the
intrinsics don't exist bec...
2014 Jun 17
2
[LLVMdev] Attaching range metadata to IntrinsicInst
...prefer LLVM passes to
>>> know about the range of these PTX intrinsics, rather than Clang adding them
>>> as metadata?
>>
>>
>> Yep.
>>
>>> ValueTracking.cpp already has some iffy target knowledge (someone sneaked
>>> a direct Intrinsic::x86_sse42_crc32_64_64 check in there), but extending it
>>> to other intrinsics in other targets seems like too much...
>>
>>
>> That's not iffy. That's exactly how it should work, and we should have
>> more of that. There is a major gotcha and that's dealing with the case wh...
2014 Jun 17
5
[LLVMdev] Attaching range metadata to IntrinsicInst
...far read-only and accessed using intrinsics. e.g.,
> %threadIdx.x = call i32 @llvm.nvvm.read.ptx.sreg.tid.x().
>
> One possible approach is to have ValueTracking compute the known
> bits of these intrinsics as special cases. This approach is already
> taken for the x86_sse42_crc32_64_64 intrinsic. However, this
> approach may not be elegant because the ranges of these CUDA special
> registers depend on the GPU compute capability specified by
> -target-cpu. For instance, blockIdx.x is bounded by 65535 in sm_20
> but 2^31-1 in sm_30. Exposing -target-cpu...
2014 Jun 17
3
[LLVMdev] Attaching range metadata to IntrinsicInst
...>> >>> them
>> >>> as metadata?
>> >>
>> >>
>> >> Yep.
>> >>
>> >>> ValueTracking.cpp already has some iffy target knowledge (someone
>> >>> sneaked
>> >>> a direct Intrinsic::x86_sse42_crc32_64_64 check in there), but
>> >>> extending it
>> >>> to other intrinsics in other targets seems like too much...
>> >>
>> >>
>> >> That's not iffy. That's exactly how it should work, and we should have
>> >> more of th...
2014 Jun 16
3
[LLVMdev] Attaching range metadata to IntrinsicInst
...variables. These special registers are so far read-only and
accessed using intrinsics. e.g.,
%threadIdx.x = call i32 @llvm.nvvm.read.ptx.sreg.tid.x().
One possible approach is to have ValueTracking compute the known bits of
these intrinsics as special cases. This approach is already taken for the
x86_sse42_crc32_64_64 intrinsic. However, this approach may not be elegant
because the ranges of these CUDA special registers depend on the GPU
compute capability specified by -target-cpu. For instance, blockIdx.x is
bounded by 65535 in sm_20 but 2^31-1 in sm_30. Exposing -target-cpu to
ValueTracking is probably discour...
2011 May 26
0
[LLVMdev] x86 SSE4.2 CRC32 intrinsics renamed
...x86_sse42_crc64_8 :
> + def int_x86_sse42_crc32_64_8 :
> Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i8_ty],
> [IntrNoMem]>;
> - def int_x86_sse42_crc64_64 : GCCBuiltin<"__builtin_ia32_crc32di">,
> + def int_x86_sse42_crc32_64_64 : GCCBuiltin<"__builtin_ia32_crc32di">,
> Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty],
> [IntrNoMem]>;
> }
>
> Modified: llvm/trunk/lib/Analysis/ValueTracking.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trun...