llvm-project/llvm/test/Verifier/param-ret-align.ll
Luo, Yuanke 6ade6d2511 [Verifier] Relieve intrinsics parameter alignment size constrain
In D121898 we restrict parameter alignment size in IR since DAGISel
only have 4 bits to hold the alignment value. However intrinsics
won't be lowered to call instruction, so we can remove the constrain
for intrinsics.

Differential Revision: https://reviews.llvm.org/D136330
2022-10-21 17:01:20 +08:00

21 lines
628 B
LLVM

; RUN: not llvm-as < %s 2>&1 | FileCheck %s
; Large vector for intrinsics is valid
; CHECK-NOT: llvm.fshr
define dso_local <8192 x i32> @test_intrin(<8192 x i32> %l, <8192 x i32> %r, <8192 x i32> %amt) {
entry:
%b = call <8192 x i32> @llvm.fshr.v8192i32(<8192 x i32> %l, <8192 x i32> %r, <8192 x i32> %amt)
ret <8192 x i32> %b
}
declare <8192 x i32> @llvm.fshr.v8192i32 (<8192 x i32> %l, <8192 x i32> %r, <8192 x i32> %amt)
; CHECK: Incorrect alignment of return type to called function!
; CHECK: bar
define dso_local void @foo() {
entry:
call <8192 x float> @bar()
ret void
}
declare dso_local <8192 x float> @bar()