; 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>)