Open adpaco-aws opened 1 year ago
Actually, this would be more of an enhancement than unsupported UB. As discussed in #1961, verification shows an out-of-bounds failure because we don't check these indexes at compile time. It would be better to bring this check into the compilation stage, which is what this task would be about.
The LLVM backend checks that all indexes supplied via the 3rd argument to
simd_shuffle
are:simd_shuffle
operation (i.e., 2x the length of one of the first arguments).At present, we do not perform this type check because we don't have access to the
Builder
type they use for constant evaluation. But we can probably do it some other way, or just usecprover
types for it.