66 lines
2.3 KiB
LLVM
66 lines
2.3 KiB
LLVM
; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_int_return
|
|
define nofpclass(nan) i32 @nofpclass_int_return(i32 %arg) {
|
|
ret i32 %arg
|
|
}
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_int_param
|
|
define i32 @nofpclass_int_param(i32 nofpclass(nan) %arg) {
|
|
ret i32 %arg
|
|
}
|
|
|
|
; CHECK: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_int_ret_decl
|
|
declare nofpclass(zero) i32 @nofpclass_int_ret_decl()
|
|
|
|
; CHECK: 'nofpclass(inf)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_int_arg_decl
|
|
declare i32 @nofpclass_int_arg_decl(i32 nofpclass(inf))
|
|
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_vector_int
|
|
; CHECK-NEXT: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_vector_int
|
|
define nofpclass(nan) <4 x i32> @nofpclass_vector_int(<4 x i32> nofpclass(zero) %arg) {
|
|
ret <4 x i32> %arg
|
|
}
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_array_int
|
|
; CHECK-NEXT: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_array_int
|
|
define nofpclass(nan) [4 x i32] @nofpclass_array_int([4 x i32] nofpclass(zero) %arg) {
|
|
ret [4 x i32] %arg
|
|
}
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_vector_array_int
|
|
; CHECK-NEXT: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_vector_array_int
|
|
define nofpclass(nan) [4 x <8 x i32>] @nofpclass_vector_array_int([4 x <8 x i32>] nofpclass(zero) %arg) {
|
|
ret [4 x <8 x i32>] %arg
|
|
}
|
|
|
|
%opaque = type opaque
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_opaque_type
|
|
; CHECK-NEXT: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_opaque_type
|
|
define nofpclass(nan) %opaque @nofpclass_opaque_type(%opaque nofpclass(zero) %arg) {
|
|
ret %opaque %arg
|
|
}
|
|
|
|
%struct = type { i32, float }
|
|
|
|
; CHECK: 'nofpclass(nan)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_struct
|
|
; CHECK-NEXT: 'nofpclass(zero)' applied to incompatible type!
|
|
; CHECK-NEXT: ptr @nofpclass_struct
|
|
define nofpclass(nan) %struct @nofpclass_struct(%struct nofpclass(zero) %arg) {
|
|
ret %struct %arg
|
|
}
|