brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · ce34595 Raw
144 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=fiji < %s | FileCheck --check-prefix=CHECK-SDAG -enable-var-scope %s3 4define void @test_readlane_p0(ptr addrspace(1) %out, ptr %src, i32 %src1) {5; CHECK-SDAG-LABEL: test_readlane_p0:6; CHECK-SDAG:       ; %bb.0:7; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v49; CHECK-SDAG-NEXT:    s_nop 310; CHECK-SDAG-NEXT:    v_readlane_b32 s5, v3, s411; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s412; CHECK-SDAG-NEXT:    ;;#ASMSTART13; CHECK-SDAG-NEXT:    ; use s[4:5]14; CHECK-SDAG-NEXT:    ;;#ASMEND15; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]16  %x = call ptr @llvm.amdgcn.readlane.p0(ptr %src, i32 %src1)17  call void asm sideeffect "; use $0", "s"(ptr %x)18  ret void19}20 21define void @test_readlane_v3p0(ptr addrspace(1) %out, <3 x ptr> %src, i32 %src1) {22; CHECK-SDAG-LABEL: test_readlane_v3p0:23; CHECK-SDAG:       ; %bb.0:24; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)25; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v826; CHECK-SDAG-NEXT:    s_nop 327; CHECK-SDAG-NEXT:    v_readlane_b32 s9, v7, s428; CHECK-SDAG-NEXT:    v_readlane_b32 s8, v6, s429; CHECK-SDAG-NEXT:    v_readlane_b32 s7, v5, s430; CHECK-SDAG-NEXT:    v_readlane_b32 s6, v4, s431; CHECK-SDAG-NEXT:    v_readlane_b32 s5, v3, s432; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s433; CHECK-SDAG-NEXT:    ;;#ASMSTART34; CHECK-SDAG-NEXT:    ; use s[4:9]35; CHECK-SDAG-NEXT:    ;;#ASMEND36; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]37  %x = call <3 x ptr> @llvm.amdgcn.readlane.v3p0(<3 x ptr> %src, i32 %src1)38  call void asm sideeffect "; use $0", "s"(<3 x ptr> %x)39  ret void40}41 42define void @test_readlane_p3(ptr addrspace(1) %out, ptr addrspace(3) %src, i32 %src1) {43; CHECK-SDAG-LABEL: test_readlane_p3:44; CHECK-SDAG:       ; %bb.0:45; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)46; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v347; CHECK-SDAG-NEXT:    s_nop 348; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s449; CHECK-SDAG-NEXT:    ;;#ASMSTART50; CHECK-SDAG-NEXT:    ; use s451; CHECK-SDAG-NEXT:    ;;#ASMEND52; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]53  %x = call ptr addrspace(3) @llvm.amdgcn.readlane.p3(ptr addrspace(3) %src, i32 %src1)54  call void asm sideeffect "; use $0", "s"(ptr addrspace(3) %x)55  ret void56}57 58define void @test_readlane_v3p3(ptr addrspace(1) %out, <3 x ptr addrspace(3)> %src, i32 %src1) {59; CHECK-SDAG-LABEL: test_readlane_v3p3:60; CHECK-SDAG:       ; %bb.0:61; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)62; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v563; CHECK-SDAG-NEXT:    s_nop 364; CHECK-SDAG-NEXT:    v_readlane_b32 s6, v4, s465; CHECK-SDAG-NEXT:    v_readlane_b32 s5, v3, s466; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s467; CHECK-SDAG-NEXT:    ;;#ASMSTART68; CHECK-SDAG-NEXT:    ; use s[4:6]69; CHECK-SDAG-NEXT:    ;;#ASMEND70; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]71  %x = call <3 x ptr addrspace(3)> @llvm.amdgcn.readlane.v3p3(<3 x ptr addrspace(3)> %src, i32 %src1)72  call void asm sideeffect "; use $0", "s"(<3 x ptr addrspace(3)> %x)73  ret void74}75 76define void @test_readlane_p5(ptr addrspace(1) %out, ptr addrspace(5) %src, i32 %src1) {77; CHECK-SDAG-LABEL: test_readlane_p5:78; CHECK-SDAG:       ; %bb.0:79; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)80; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v381; CHECK-SDAG-NEXT:    s_nop 382; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s483; CHECK-SDAG-NEXT:    ;;#ASMSTART84; CHECK-SDAG-NEXT:    ; use s485; CHECK-SDAG-NEXT:    ;;#ASMEND86; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]87  %x = call ptr addrspace(5) @llvm.amdgcn.readlane.p5(ptr addrspace(5) %src, i32 %src1)88  call void asm sideeffect "; use $0", "s"(ptr addrspace(5) %x)89  ret void90}91 92define void @test_readlane_v3p5(ptr addrspace(1) %out, <3 x ptr addrspace(5)> %src, i32 %src1) {93; CHECK-SDAG-LABEL: test_readlane_v3p5:94; CHECK-SDAG:       ; %bb.0:95; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)96; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v597; CHECK-SDAG-NEXT:    s_nop 398; CHECK-SDAG-NEXT:    v_readlane_b32 s6, v4, s499; CHECK-SDAG-NEXT:    v_readlane_b32 s5, v3, s4100; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s4101; CHECK-SDAG-NEXT:    ;;#ASMSTART102; CHECK-SDAG-NEXT:    ; use s[4:6]103; CHECK-SDAG-NEXT:    ;;#ASMEND104; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]105  %x = call <3 x ptr addrspace(5)> @llvm.amdgcn.readlane.v3p5(<3 x ptr addrspace(5)> %src, i32 %src1)106  call void asm sideeffect "; use $0", "s"(<3 x ptr addrspace(5)> %x)107  ret void108}109 110define void @test_readlane_p6(ptr addrspace(1) %out, ptr addrspace(6) %src, i32 %src1) {111; CHECK-SDAG-LABEL: test_readlane_p6:112; CHECK-SDAG:       ; %bb.0:113; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)114; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v3115; CHECK-SDAG-NEXT:    s_nop 3116; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s4117; CHECK-SDAG-NEXT:    ;;#ASMSTART118; CHECK-SDAG-NEXT:    ; use s4119; CHECK-SDAG-NEXT:    ;;#ASMEND120; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]121  %x = call ptr addrspace(6) @llvm.amdgcn.readlane.p6(ptr addrspace(6) %src, i32 %src1)122  call void asm sideeffect "; use $0", "s"(ptr addrspace(6) %x)123  ret void124}125 126define void @test_readlane_v3p6(ptr addrspace(1) %out, <3 x ptr addrspace(6)> %src, i32 %src1) {127; CHECK-SDAG-LABEL: test_readlane_v3p6:128; CHECK-SDAG:       ; %bb.0:129; CHECK-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)130; CHECK-SDAG-NEXT:    v_readfirstlane_b32 s4, v5131; CHECK-SDAG-NEXT:    s_nop 3132; CHECK-SDAG-NEXT:    v_readlane_b32 s6, v4, s4133; CHECK-SDAG-NEXT:    v_readlane_b32 s5, v3, s4134; CHECK-SDAG-NEXT:    v_readlane_b32 s4, v2, s4135; CHECK-SDAG-NEXT:    ;;#ASMSTART136; CHECK-SDAG-NEXT:    ; use s[4:6]137; CHECK-SDAG-NEXT:    ;;#ASMEND138; CHECK-SDAG-NEXT:    s_setpc_b64 s[30:31]139  %x = call <3 x ptr addrspace(6)> @llvm.amdgcn.readlane.v3p6(<3 x ptr addrspace(6)> %src, i32 %src1)140  call void asm sideeffect "; use $0", "s"(<3 x ptr addrspace(6)> %x)141  ret void142}143 144