mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 12:26:07 +00:00

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.
14 lines
560 B
Common Lisp
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);
|
|
}
|