Displaying 4 results from an estimated 4 matches for "__builtin_shuffle".
2008 Jun 27
0
[LLVMdev] Vector instructions
...2;
float f;
void test2() {
vec2 = vec4.xy; // shorten
f = vec2.x; // extract elt
vec4 = vec4.yyyy; // splat
vec4.zw = vec2; // insert
}
etc. It also offers operators to extract all the even or odd elements
of a vector, do arbitrary two-input-vector shuffles with
__builtin_shuffle etc.
>>> 2. vector select
>>> 3. vector trunc, sext, zext, fptrunc, fpext
>>> 4. vector shl, lshr, ashr
>> [...]
>>
>> We agree that these would be useful. There are intentions to add them
>> to LLVM; others can say more.
>
> OK. I'd lov...
2008 Jun 27
2
[LLVMdev] Vector instructions
Hi Dan,
Thanks for your comments. I've responded inline below.
On 26-Jun-08, at 6:49 PM, Dan Gohman wrote:
> On Jun 26, 2008, at 1:56 PM, Stefanus Du Toit wrote:
>>
>> ===
>> 1. Shufflevector only accepts vectors of the same type
>>
>> I would propose to change the syntax from:
>>
>>> <result> = shufflevector <n x <ty>>
2011 Nov 14
0
[LLVMdev] Target intrinsics and translation
On Nov 14, 2011, at 3:01 PM, Dan Gohman wrote:
> LLVM (via clang) currently translates target intrinsics to generic IR
> whenever it can. For example, on x86 it translates _mm_loadu_pd to a
> simple load instruction with an alignment of 1. The backend is then
> responsible for translating the load back to the corresponding
> machine instruction.
>
> The advantage of this is
2011 Nov 14
3
[LLVMdev] Target intrinsics and translation
LLVM (via clang) currently translates target intrinsics to generic IR
whenever it can. For example, on x86 it translates _mm_loadu_pd to a
simple load instruction with an alignment of 1. The backend is then
responsible for translating the load back to the corresponding
machine instruction.
The advantage of this is that it opens up such code to LLVM's
optimizers, which can theoretically speed