brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 2c4aa6b Raw
48 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK %s3; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}4 5target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"6 7declare <2 x bfloat> @llvm.sin.f16(<2 x bfloat> %a) #08declare <2 x bfloat> @llvm.cos.f16(<2 x bfloat> %a) #09 10define <2 x bfloat> @test_sin(<2 x bfloat> %a) #0 #1 {11; CHECK-LABEL: test_sin(12; CHECK:       {13; CHECK-NEXT:    .reg .b16 %rs<3>;14; CHECK-NEXT:    .reg .b32 %r<6>;15; CHECK-EMPTY:16; CHECK-NEXT:  // %bb.0:17; CHECK-NEXT:    ld.param.v2.b16 {%rs1, %rs2}, [test_sin_param_0];18; CHECK-NEXT:    cvt.f32.bf16 %r1, %rs1;19; CHECK-NEXT:    sin.approx.f32 %r2, %r1;20; CHECK-NEXT:    cvt.f32.bf16 %r3, %rs2;21; CHECK-NEXT:    sin.approx.f32 %r4, %r3;22; CHECK-NEXT:    cvt.rn.bf16x2.f32 %r5, %r4, %r2;23; CHECK-NEXT:    st.param.b32 [func_retval0], %r5;24; CHECK-NEXT:    ret;25  %r = call afn <2 x bfloat> @llvm.sin.f16(<2 x bfloat> %a)26  ret <2 x bfloat> %r27}28 29define <2 x bfloat> @test_cos(<2 x bfloat> %a) #0 #1 {30; CHECK-LABEL: test_cos(31; CHECK:       {32; CHECK-NEXT:    .reg .b16 %rs<3>;33; CHECK-NEXT:    .reg .b32 %r<6>;34; CHECK-EMPTY:35; CHECK-NEXT:  // %bb.0:36; CHECK-NEXT:    ld.param.v2.b16 {%rs1, %rs2}, [test_cos_param_0];37; CHECK-NEXT:    cvt.f32.bf16 %r1, %rs1;38; CHECK-NEXT:    cos.approx.f32 %r2, %r1;39; CHECK-NEXT:    cvt.f32.bf16 %r3, %rs2;40; CHECK-NEXT:    cos.approx.f32 %r4, %r3;41; CHECK-NEXT:    cvt.rn.bf16x2.f32 %r5, %r4, %r2;42; CHECK-NEXT:    st.param.b32 [func_retval0], %r5;43; CHECK-NEXT:    ret;44  %r = call afn <2 x bfloat> @llvm.cos.f16(<2 x bfloat> %a)45  ret <2 x bfloat> %r46}47 48