blob: 2035cb3aea55ac4b15eb5c69ed06b56015a82cdb [file] [edit]
; RUN: rm -rf %t && split-file %s %t
; RUN: llvm-as < %t/missing-arg.ll | llvm-dis | FileCheck -check-prefix=MISSING-ARG %s
; RUN: llvm-as < %t/void-return.ll | llvm-dis | FileCheck -check-prefix=VOID %s
; RUN: llvm-as < %t/bfloat.ll | llvm-dis | FileCheck -check-prefix=BFLOAT %s
; RUN: llvm-as < %t/half.ll | llvm-dis | FileCheck -check-prefix=HALF %s
; RUN: llvm-as < %t/vector.ll | llvm-dis | FileCheck -check-prefix=VECTOR %s
;--- missing-arg.ll
define i16 @convert_to_fp16__missing_arg() {
; MISSING-ARG: %result = call i16 @llvm.convert.to.fp16.f32()
%result = call i16 @llvm.convert.to.fp16.f32()
ret i16 %result
}
define float @convert_from_fp16__f32_missing_arg() {
; MISSING-ARG: %result = call float @llvm.convert.from.fp16.f32()
%result = call float @llvm.convert.from.fp16.f32()
ret float %result
}
declare i16 @llvm.convert.to.fp16.f32()
declare float @llvm.convert.from.fp16.f32()
;--- void-return.ll
define void @convert_to_fp16__f32(float %src) {
; VOID: call void @llvm.convert.to.fp16.f32(float %src)
call void @llvm.convert.to.fp16.f32(float %src)
ret void
}
define void @convert_from_fp16__f32(i16 %src) {
; VOID: call void @llvm.convert.from.fp16.f32(i16 %src)
call void @llvm.convert.from.fp16.f32(i16 %src)
ret void
}
declare void @llvm.convert.to.fp16.f32(float)
declare void @llvm.convert.from.fp16.f32(i16)
;--- bfloat.ll
; Not well formed but the verifier never enforced this.
define i16 @convert_to_fp16__bf16(bfloat %src) {
; BFLOAT: %result = call i16 @llvm.convert.to.fp16.bf16(bfloat %src)
%result = call i16 @llvm.convert.to.fp16.bf16(bfloat %src)
ret i16 %result
}
; Not well formed but the verifier never enforced this.
define bfloat @convert_from_fp16__bf16(i16 %src) {
; BFLOAT: %result = call bfloat @llvm.convert.from.fp16.bf16(i16 %src)
%result = call bfloat @llvm.convert.from.fp16.bf16(i16 %src)
ret bfloat %result
}
declare i16 @llvm.convert.to.fp16.bf16(bfloat)
declare bfloat @llvm.convert.from.fp16.bf16(i16)
;--- half.ll
define i16 @convert_to_fp16__f16(half %src) {
; HALF: %result = call i16 @llvm.convert.to.fp16.f16(half %src)
%result = call i16 @llvm.convert.to.fp16.f16(half %src)
ret i16 %result
}
define half @convert_from_fp16__f16(i16 %src) {
; HALF: %result = call half @llvm.convert.from.fp16.f16(i16 %src)
%result = call half @llvm.convert.from.fp16.f16(i16 %src)
ret half %result
}
declare i16 @llvm.convert.to.fp16.f16(half)
declare half @llvm.convert.from.fp16.f16(i16)
;--- vector.ll
; These were not declared as supporting vectors.
define <2 x i16> @convert_to_fp16__v2f32(<2 x float> %src) {
; VECTOR: %result = call <2 x i16> @llvm.convert.to.fp16.v2f32(<2 x float> %src)
%result = call <2 x i16> @llvm.convert.to.fp16.v2f32(<2 x float> %src)
ret <2 x i16> %result
}
define <2 x float> @convert_from_fp16__v2f32(<2 x i16> %src) {
; VECTOR: %result = call <2 x float> @llvm.convert.from.fp16.v2f32(<2 x i16> %src)
%result = call <2 x float> @llvm.convert.from.fp16.v2f32(<2 x i16> %src)
ret <2 x float> %result
}
declare <2 x i16> @llvm.convert.to.fp16.v2f32(<2 x float>)
declare <2 x float> @llvm.convert.from.fp16.v2f32(<2 x i16>)