brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.8 KiB · 407a802 Raw
218 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: not llc -mtriple=amdgcn -mcpu=gfx908 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx90a < %s | FileCheck %s4 5; FIXME: Shouldn't emit and6; ERR: error: couldn't allocate input reg for constraint 'VA'7define void @use_A_i16(i16 %x) {8; CHECK-LABEL: use_A_i16:9; CHECK:       ; %bb.0:10; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11; CHECK-NEXT:    v_and_b32_e32 v0, 0xffff, v012; CHECK-NEXT:    ;;#ASMSTART13; CHECK-NEXT:    ; use v014; CHECK-NEXT:    ;;#ASMEND15; CHECK-NEXT:    s_setpc_b64 s[30:31]16  call void asm sideeffect "; use $0", "^VA"(i16 %x)17  ret void18}19 20; ERR: error: couldn't allocate input reg for constraint 'VA'21define void @use_A_f16(half %x) {22; CHECK-LABEL: use_A_f16:23; CHECK:       ; %bb.0:24; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)25; CHECK-NEXT:    ;;#ASMSTART26; CHECK-NEXT:    ; use v027; CHECK-NEXT:    ;;#ASMEND28; CHECK-NEXT:    s_setpc_b64 s[30:31]29  call void asm sideeffect "; use $0", "^VA"(half %x)30  ret void31}32 33; ERR: error: couldn't allocate input reg for constraint 'VA'34define void @use_A_bf16(bfloat %x) {35; CHECK-LABEL: use_A_bf16:36; CHECK:       ; %bb.0:37; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)38; CHECK-NEXT:    ;;#ASMSTART39; CHECK-NEXT:    ; use v040; CHECK-NEXT:    ;;#ASMEND41; CHECK-NEXT:    s_setpc_b64 s[30:31]42  call void asm sideeffect "; use $0", "^VA"(bfloat %x)43  ret void44}45 46; ERR: error: couldn't allocate input reg for constraint 'VA'47define void @use_A_v2i16(<2 x i16> %x) {48; CHECK-LABEL: use_A_v2i16:49; CHECK:       ; %bb.0:50; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)51; CHECK-NEXT:    ;;#ASMSTART52; CHECK-NEXT:    ; use v053; CHECK-NEXT:    ;;#ASMEND54; CHECK-NEXT:    s_setpc_b64 s[30:31]55  call void asm sideeffect "; use $0", "^VA"(<2 x i16> %x)56  ret void57}58 59; ERR: error: couldn't allocate input reg for constraint 'VA'60define void @use_A_v2f16(<2 x half> %x) {61; CHECK-LABEL: use_A_v2f16:62; CHECK:       ; %bb.0:63; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)64; CHECK-NEXT:    ;;#ASMSTART65; CHECK-NEXT:    ; use v066; CHECK-NEXT:    ;;#ASMEND67; CHECK-NEXT:    s_setpc_b64 s[30:31]68  call void asm sideeffect "; use $0", "^VA"(<2 x half> %x)69  ret void70}71 72; ERR: error: couldn't allocate input reg for constraint 'VA'73define void @use_A_v2bf16(<2 x bfloat> %x) {74; CHECK-LABEL: use_A_v2bf16:75; CHECK:       ; %bb.0:76; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)77; CHECK-NEXT:    ;;#ASMSTART78; CHECK-NEXT:    ; use v079; CHECK-NEXT:    ;;#ASMEND80; CHECK-NEXT:    s_setpc_b64 s[30:31]81  call void asm sideeffect "; use $0", "^VA"(<2 x bfloat> %x)82  ret void83}84 85; ERR: error: couldn't allocate input reg for constraint 'VA'86define void @use_A_i32(i32 %x) {87; CHECK-LABEL: use_A_i32:88; CHECK:       ; %bb.0:89; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)90; CHECK-NEXT:    ;;#ASMSTART91; CHECK-NEXT:    ; use v092; CHECK-NEXT:    ;;#ASMEND93; CHECK-NEXT:    s_setpc_b64 s[30:31]94  call void asm sideeffect "; use $0", "^VA"(i32 %x)95  ret void96}97 98; ERR: error: couldn't allocate input reg for constraint 'VA'99define void @use_A_f32(float %x) {100; CHECK-LABEL: use_A_f32:101; CHECK:       ; %bb.0:102; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)103; CHECK-NEXT:    ;;#ASMSTART104; CHECK-NEXT:    ; use v0105; CHECK-NEXT:    ;;#ASMEND106; CHECK-NEXT:    s_setpc_b64 s[30:31]107  call void asm sideeffect "; use $0", "^VA"(float %x)108  ret void109}110 111; ERR: error: couldn't allocate input reg for constraint 'VA'112define void @use_A_i64(i64 %x) {113; CHECK-LABEL: use_A_i64:114; CHECK:       ; %bb.0:115; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)116; CHECK-NEXT:    ;;#ASMSTART117; CHECK-NEXT:    ; use v[0:1]118; CHECK-NEXT:    ;;#ASMEND119; CHECK-NEXT:    s_setpc_b64 s[30:31]120  call void asm sideeffect "; use $0", "^VA"(i64 %x)121  ret void122}123 124; ERR: error: couldn't allocate input reg for constraint 'VA'125define void @use_A_f64(double %x) {126; CHECK-LABEL: use_A_f64:127; CHECK:       ; %bb.0:128; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)129; CHECK-NEXT:    ;;#ASMSTART130; CHECK-NEXT:    ; use v[0:1]131; CHECK-NEXT:    ;;#ASMEND132; CHECK-NEXT:    s_setpc_b64 s[30:31]133  call void asm sideeffect "; use $0", "^VA"(double %x)134  ret void135}136 137; ERR: error: couldn't allocate input reg for constraint 'VA'138define void @use_A_p1(ptr addrspace(1) %x) {139; CHECK-LABEL: use_A_p1:140; CHECK:       ; %bb.0:141; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)142; CHECK-NEXT:    ;;#ASMSTART143; CHECK-NEXT:    ; use v[0:1]144; CHECK-NEXT:    ;;#ASMEND145; CHECK-NEXT:    s_setpc_b64 s[30:31]146  call void asm sideeffect "; use $0", "^VA"(ptr addrspace(1) %x)147  ret void148}149 150; ERR: error: couldn't allocate input reg for constraint 'VA'151define void @use_A_v32i32(<32 x i32> %x) {152; CHECK-LABEL: use_A_v32i32:153; CHECK:       ; %bb.0:154; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)155; CHECK-NEXT:    buffer_load_dword v31, off, s[0:3], s32156; CHECK-NEXT:    s_waitcnt vmcnt(0)157; CHECK-NEXT:    ;;#ASMSTART158; CHECK-NEXT:    ; use v[0:31]159; CHECK-NEXT:    ;;#ASMEND160; CHECK-NEXT:    s_setpc_b64 s[30:31]161  call void asm sideeffect "; use $0", "^VA"(<32 x i32> %x)162  ret void163}164 165; ERR: error: couldn't allocate input reg for constraint 'VA'166define void @use_A_v32f32(<32 x float> %x) {167; CHECK-LABEL: use_A_v32f32:168; CHECK:       ; %bb.0:169; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)170; CHECK-NEXT:    buffer_load_dword v31, off, s[0:3], s32171; CHECK-NEXT:    s_waitcnt vmcnt(0)172; CHECK-NEXT:    ;;#ASMSTART173; CHECK-NEXT:    ; use v[0:31]174; CHECK-NEXT:    ;;#ASMEND175; CHECK-NEXT:    s_setpc_b64 s[30:31]176  call void asm sideeffect "; use $0", "^VA"(<32 x float> %x)177  ret void178}179 180; ERR: error: couldn't allocate output register for constraint 'VA'181define i16 @def_A_i16() {182; CHECK-LABEL: def_A_i16:183; CHECK:       ; %bb.0:184; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)185; CHECK-NEXT:    ;;#ASMSTART186; CHECK-NEXT:    ; def v0187; CHECK-NEXT:    ;;#ASMEND188; CHECK-NEXT:    s_setpc_b64 s[30:31]189  %ret = call i16 asm sideeffect "; def $0", "=^VA"()190  ret i16 %ret191}192 193; ERR: error: couldn't allocate output register for constraint 'VA'194define i32 @def_A_i32() {195; CHECK-LABEL: def_A_i32:196; CHECK:       ; %bb.0:197; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)198; CHECK-NEXT:    ;;#ASMSTART199; CHECK-NEXT:    ; def v0200; CHECK-NEXT:    ;;#ASMEND201; CHECK-NEXT:    s_setpc_b64 s[30:31]202  %ret = call i32 asm sideeffect "; def $0", "=^VA"()203  ret i32 %ret204}205 206; ERR: error: couldn't allocate output register for constraint 'VA'207define ptr addrspace(1) @def_A_p1() {208; CHECK-LABEL: def_A_p1:209; CHECK:       ; %bb.0:210; CHECK-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)211; CHECK-NEXT:    ;;#ASMSTART212; CHECK-NEXT:    ; def v[0:1]213; CHECK-NEXT:    ;;#ASMEND214; CHECK-NEXT:    s_setpc_b64 s[30:31]215  %ret = call ptr addrspace(1) asm sideeffect "; def $0", "=^VA"()216  ret ptr addrspace(1) %ret217}218