brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 8e0cdeb Raw
136 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=tahiti -stop-after=instruction-select < %s | FileCheck -check-prefixes=GCN,GFX6 %s2; RUN: llc -mtriple=amdgcn -mcpu=fiji -stop-after=instruction-select < %s | FileCheck -check-prefixes=GCN,GFX8PLUS %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -stop-after=instruction-select < %s | FileCheck -check-prefixes=GCN,GFX8PLUS %s4; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-enable-vopd=0 -stop-after=instruction-select < %s | FileCheck -check-prefixes=GCN,GFX8PLUS %s5 6; GCN-LABEL: name:            s_shl_i327; GCN: S_LSHL_B328define amdgpu_kernel void @s_shl_i32(ptr addrspace(1) %out, i32 %lhs, i32 %rhs) {9  %result = shl i32 %lhs, %rhs10  store i32 %result, ptr addrspace(1) %out11  ret void12}13 14; GCN-LABEL: name:            v_shl_i3215; GFX6: V_LSHL_B32_e3216; GFX8PLUS: V_LSHLREV_B32_e3217define amdgpu_kernel void @v_shl_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) {18  %tid = call i32 @llvm.amdgcn.workitem.id.x()19  %b_ptr = getelementptr i32, ptr addrspace(1) %in, i32 %tid20  %a = load i32, ptr addrspace(1) %in21  %b = load i32, ptr addrspace(1) %b_ptr22  %result = shl i32 %a, %b23  store i32 %result, ptr addrspace(1) %out24  ret void25}26 27; GCN-LABEL: name:            s_lshr_i3228; GCN: S_LSHR_B3229define amdgpu_kernel void @s_lshr_i32(ptr addrspace(1) %out, i32 %lhs, i32 %rhs) {30  %result = lshr i32 %lhs, %rhs31  store i32 %result, ptr addrspace(1) %out32  ret void33}34 35; GCN-LABEL: name:            v_lshr_i3236; GFX6: V_LSHR_B32_e3237; GFX8PLUS: V_LSHRREV_B32_e6438define amdgpu_kernel void @v_lshr_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) {39  %tid = call i32 @llvm.amdgcn.workitem.id.x()40  %b_ptr = getelementptr i32, ptr addrspace(1) %in, i32 %tid41  %a = load i32, ptr addrspace(1) %in42  %b = load i32, ptr addrspace(1) %b_ptr43  %result = lshr i32 %a, %b44  store i32 %result, ptr addrspace(1) %out45  ret void46}47 48; GCN-LABEL: name:            s_ashr_i3249; GCN: S_ASHR_I3250define amdgpu_kernel void @s_ashr_i32(ptr addrspace(1) %out, i32 %lhs, i32 %rhs) #0 {51  %result = ashr i32 %lhs, %rhs52  store i32 %result, ptr addrspace(1) %out53  ret void54}55 56; GCN-LABEL: name:            v_ashr_i3257; GFX6: V_ASHR_I32_e3258; GFX8PLUS: V_ASHRREV_I32_e6459define amdgpu_kernel void @v_ashr_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) {60  %tid = call i32 @llvm.amdgcn.workitem.id.x()61  %b_ptr = getelementptr i32, ptr addrspace(1) %in, i32 %tid62  %a = load i32, ptr addrspace(1) %in63  %b = load i32, ptr addrspace(1) %b_ptr64  %result = ashr i32 %a, %b65  store i32 %result, ptr addrspace(1) %out66  ret void67}68 69; GCN-LABEL: name:            s_shl_i6470; GCN: S_LSHL_B6471define amdgpu_kernel void @s_shl_i64(ptr addrspace(1) %out, i64 %lhs, i64 %rhs) {72  %result = shl i64 %lhs, %rhs73  store i64 %result, ptr addrspace(1) %out74  ret void75}76 77; GCN-LABEL: name:            v_shl_i6478; GFX6: V_LSHL_B6479; GFX8: V_LSHLREV_B6480define amdgpu_kernel void @v_shl_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) {81  %tid = call i32 @llvm.amdgcn.workitem.id.x()82  %idx = zext i32 %tid to i6483  %b_ptr = getelementptr i64, ptr addrspace(1) %in, i64 %idx84  %a = load i64, ptr addrspace(1) %in85  %b = load i64, ptr addrspace(1) %b_ptr86  %result = shl i64 %a, %b87  store i64 %result, ptr addrspace(1) %out88  ret void89}90 91; GCN-LABEL: name:            s_lshr_i6492; GCN: S_LSHR_B6493define amdgpu_kernel void @s_lshr_i64(ptr addrspace(1) %out, i64 %lhs, i64 %rhs) {94  %result = lshr i64 %lhs, %rhs95  store i64 %result, ptr addrspace(1) %out96  ret void97}98 99; GCN-LABEL: name:            v_lshr_i64100; GFX6: V_LSHR_B64101; GFX8: V_LSHRREV_B64102define amdgpu_kernel void @v_lshr_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) {103  %tid = call i32 @llvm.amdgcn.workitem.id.x()104  %idx = zext i32 %tid to i64105  %b_ptr = getelementptr i64, ptr addrspace(1) %in, i64 %idx106  %a = load i64, ptr addrspace(1) %in107  %b = load i64, ptr addrspace(1) %b_ptr108  %result = lshr i64 %a, %b109  store i64 %result, ptr addrspace(1) %out110  ret void111}112 113; GCN-LABEL: name:            s_ashr_i64114; GCN: S_ASHR_I64115define amdgpu_kernel void @s_ashr_i64(ptr addrspace(1) %out, i64 %lhs, i64 %rhs) {116  %result = ashr i64 %lhs, %rhs117  store i64 %result, ptr addrspace(1) %out118  ret void119}120 121; GCN-LABEL: name:            v_ashr_i64122; GFX6: V_ASHR_I64123; GFX8: V_ASHRREV_I64124define amdgpu_kernel void @v_ashr_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) {125  %tid = call i32 @llvm.amdgcn.workitem.id.x()126  %idx = zext i32 %tid to i64127  %b_ptr = getelementptr i64, ptr addrspace(1) %in, i64 %idx128  %a = load i64, ptr addrspace(1) %in129  %b = load i64, ptr addrspace(1) %b_ptr130  %result = ashr i64 %a, %b131  store i64 %result, ptr addrspace(1) %out132  ret void133}134 135declare i32 @llvm.amdgcn.workitem.id.x()136