llvm-project/clang/test/CodeGenOpenCL/vector_shufflevector.cl
Nikita Popov a3d2d34e84 [Clang] Use poison as base for vector literals
When constructing vectors from elements, use poison instead of
undef as the base value. These literals always initialize all
elements (padding the remainder with zero), so that the choice
of base value does not affect semantics.
2023-12-19 11:53:18 +01:00

14 lines
560 B
Common Lisp

// RUN: %clang_cc1 -emit-llvm -O0 %s -o - | FileCheck %s
// The shuffle vector mask must always be of i32 vector type
// See http://reviews.llvm.org/D10838 and https://llvm.org/bugs/show_bug.cgi?id=23800#c2
// for more information about a bug where a 64 bit index operand causes the generation
// of an invalid mask
typedef unsigned int uint2 __attribute((ext_vector_type(2)));
void vector_shufflevector_valid(void) {
//CHECK: {{%.*}} = shufflevector <2 x i32> {{%.*}}, <2 x i32> poison, <2 x i32> <i32 0, i32 poison>
(uint2)(((uint2)(0)).s0, 0);
}