| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 | 
 | ; RUN: llc < %s -mcpu=sm_20 -O0 | FileCheck %s | 
 | ; RUN: %if ptxas %{ llc < %s -mcpu=sm_20 -O0 | %ptxas-verify %} | 
 |  | 
 | target triple = "nvptx64-unknown-unknown" | 
 |  | 
 | define ptr @test1(ptr %p) { | 
 | ; CHECK-LABEL: test1( | 
 | ; CHECK:       { | 
 | ; CHECK-NEXT:    .reg .b64 %rd<2>; | 
 | ; CHECK-EMPTY: | 
 | ; CHECK-NEXT:  // %bb.0: | 
 | ; CHECK-NEXT:    ld.param.b64 %rd1, [test1_param_0]; | 
 | ; CHECK-NEXT:    st.param.b64 [func_retval0], %rd1; | 
 | ; CHECK-NEXT:    ret; | 
 |   %a = addrspacecast ptr %p to ptr addrspace(5) | 
 |   %b = addrspacecast ptr addrspace(5) %a to ptr | 
 |   ret ptr %b | 
 | } | 
 |  | 
 | define ptr addrspace(1) @test2(ptr addrspace(5) %p) { | 
 | ; CHECK-LABEL: test2( | 
 | ; CHECK:       { | 
 | ; CHECK-NEXT:    .reg .b64 %rd<4>; | 
 | ; CHECK-EMPTY: | 
 | ; CHECK-NEXT:  // %bb.0: | 
 | ; CHECK-NEXT:    ld.param.b64 %rd1, [test2_param_0]; | 
 | ; CHECK-NEXT:    cvta.local.u64 %rd2, %rd1; | 
 | ; CHECK-NEXT:    cvta.to.global.u64 %rd3, %rd2; | 
 | ; CHECK-NEXT:    st.param.b64 [func_retval0], %rd3; | 
 | ; CHECK-NEXT:    ret; | 
 |   %a = addrspacecast ptr addrspace(5) %p to ptr | 
 |   %b = addrspacecast ptr %a to ptr addrspace(1) | 
 |   ret ptr addrspace(1) %b | 
 | } |