92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX11 %s3 4define amdgpu_kernel void @s_input_output_i16() #0 {5; GFX11-LABEL: s_input_output_i16:6; GFX11: ; %bb.0:7; GFX11-NEXT: ;;#ASMSTART8; GFX11-NEXT: s_mov_b32 s0, -19; GFX11-NEXT: ;;#ASMEND10; GFX11-NEXT: s_and_b32 s0, s0, 0xffff11; GFX11-NEXT: ;;#ASMSTART12; GFX11-NEXT: ; use s013; GFX11-NEXT: ;;#ASMEND14; GFX11-NEXT: s_endpgm15 %v = tail call i16 asm sideeffect "s_mov_b32 $0, -1", "=s"()16 tail call void asm sideeffect "; use $0", "s"(i16 %v) #017 ret void18}19 20define amdgpu_kernel void @s_input_output_f16() #0 {21; GFX11-LABEL: s_input_output_f16:22; GFX11: ; %bb.0:23; GFX11-NEXT: ;;#ASMSTART24; GFX11-NEXT: s_mov_b32 s0, -125; GFX11-NEXT: ;;#ASMEND26; GFX11-NEXT: ;;#ASMSTART27; GFX11-NEXT: ; use s028; GFX11-NEXT: ;;#ASMEND29; GFX11-NEXT: s_endpgm30 %v = tail call half asm sideeffect "s_mov_b32 $0, -1", "=s"() #031 tail call void asm sideeffect "; use $0", "s"(half %v)32 ret void33}34 35define amdgpu_kernel void @v_input_output_f16() #0 {36; GFX11-LABEL: v_input_output_f16:37; GFX11: ; %bb.0:38; GFX11-NEXT: ;;#ASMSTART39; GFX11-NEXT: v_mov_b16 v0.l, -140; GFX11-NEXT: ;;#ASMEND41; GFX11-NEXT: ;;#ASMSTART42; GFX11-NEXT: ; use v0.l43; GFX11-NEXT: ;;#ASMEND44; GFX11-NEXT: s_endpgm45 %v = tail call half asm sideeffect "v_mov_b16 $0, -1", "=v"() #046 tail call void asm sideeffect "; use $0", "v"(half %v)47 ret void48}49 50define amdgpu_kernel void @v_input_output_i16() #0 {51; GFX11-LABEL: v_input_output_i16:52; GFX11: ; %bb.0:53; GFX11-NEXT: ;;#ASMSTART54; GFX11-NEXT: v_mov_b16 v0.l, -155; GFX11-NEXT: ;;#ASMEND56; GFX11-NEXT: ;;#ASMSTART57; GFX11-NEXT: ; use v0.l58; GFX11-NEXT: ;;#ASMEND59; GFX11-NEXT: s_endpgm60 %v = tail call i16 asm sideeffect "v_mov_b16 $0, -1", "=v"() #061 tail call void asm sideeffect "; use $0", "v"(i16 %v)62 ret void63}64 65define amdgpu_kernel void @i16_imm_input_phys_vgpr_lo() {66; GFX11-LABEL: i16_imm_input_phys_vgpr_lo:67; GFX11: ; %bb.0: ; %entry68; GFX11-NEXT: v_mov_b16_e32 v0.l, -169; GFX11-NEXT: ;;#ASMSTART70; GFX11-NEXT: ; use v0.l71; GFX11-NEXT: ;;#ASMEND72; GFX11-NEXT: s_endpgm73entry:74 call void asm sideeffect "; use $0 ", "{v0.l}"(i16 65535)75 ret void76}77 78define amdgpu_kernel void @i16_imm_input_phys_vgpr_hi() {79; GFX11-LABEL: i16_imm_input_phys_vgpr_hi:80; GFX11: ; %bb.0: ; %entry81; GFX11-NEXT: v_mov_b16_e32 v0.h, -182; GFX11-NEXT: ;;#ASMSTART83; GFX11-NEXT: ; use v0.h84; GFX11-NEXT: ;;#ASMEND85; GFX11-NEXT: s_endpgm86entry:87 call void asm sideeffect "; use $0 ", "{v0.h}"(i16 65535)88 ret void89}90 91attributes #0 = { nounwind }92