mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
PTX: Unify handling of loads/stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140533 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -6,9 +6,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i16[20];
|
||||
@array_constant_i16 = external addrspace(1) constant [10 x i16]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i16[20];
|
||||
@array_local_i16 = external addrspace(2) global [10 x i16]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i16[20];
|
||||
@array_shared_i16 = external addrspace(4) global [10 x i16]
|
||||
|
||||
@@ -18,9 +15,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i32[40];
|
||||
@array_constant_i32 = external addrspace(1) constant [10 x i32]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i32[40];
|
||||
@array_local_i32 = external addrspace(2) global [10 x i32]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i32[40];
|
||||
@array_shared_i32 = external addrspace(4) global [10 x i32]
|
||||
|
||||
@@ -30,9 +24,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i64[80];
|
||||
@array_constant_i64 = external addrspace(1) constant [10 x i64]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i64[80];
|
||||
@array_local_i64 = external addrspace(2) global [10 x i64]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i64[80];
|
||||
@array_shared_i64 = external addrspace(4) global [10 x i64]
|
||||
|
||||
@@ -42,9 +33,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_float[40];
|
||||
@array_constant_float = external addrspace(1) constant [10 x float]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_float[40];
|
||||
@array_local_float = external addrspace(2) global [10 x float]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_float[40];
|
||||
@array_shared_float = external addrspace(4) global [10 x float]
|
||||
|
||||
@@ -54,9 +42,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_double[80];
|
||||
@array_constant_double = external addrspace(1) constant [10 x double]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_double[80];
|
||||
@array_local_double = external addrspace(2) global [10 x double]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_double[80];
|
||||
@array_shared_double = external addrspace(4) global [10 x double]
|
||||
|
||||
@@ -296,56 +281,6 @@ entry:
|
||||
ret double %x
|
||||
}
|
||||
|
||||
define ptx_device i16 @t4_local_u16() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i16;
|
||||
;CHECK: ld.local.u16 %ret{{[0-9]+}}, [%r[[R0]]];
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i16] addrspace(2)* @array_local_i16, i32 0, i32 0
|
||||
%x = load i16 addrspace(2)* %i
|
||||
ret i16 %x
|
||||
}
|
||||
|
||||
define ptx_device i32 @t4_local_u32() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i32;
|
||||
;CHECK: ld.local.u32 %ret{{[0-9]+}}, [%r[[R0]]];
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i32] addrspace(2)* @array_local_i32, i32 0, i32 0
|
||||
%x = load i32 addrspace(2)* %i
|
||||
ret i32 %x
|
||||
}
|
||||
|
||||
define ptx_device i64 @t4_local_u64() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i64;
|
||||
;CHECK: ld.local.u64 %ret{{[0-9]+}}, [%r[[R0]]];
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i64] addrspace(2)* @array_local_i64, i32 0, i32 0
|
||||
%x = load i64 addrspace(2)* %i
|
||||
ret i64 %x
|
||||
}
|
||||
|
||||
define ptx_device float @t4_local_f32() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_float;
|
||||
;CHECK: ld.local.f32 %ret{{[0-9]+}}, [%r[[R0]]];
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x float] addrspace(2)* @array_local_float, i32 0, i32 0
|
||||
%x = load float addrspace(2)* %i
|
||||
ret float %x
|
||||
}
|
||||
|
||||
define ptx_device double @t4_local_f64() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_double;
|
||||
;CHECK: ld.local.f64 %ret{{[0-9]+}}, [%r[[R0]]];
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x double] addrspace(2)* @array_local_double, i32 0, i32 0
|
||||
%x = load double addrspace(2)* %i
|
||||
ret double %x
|
||||
}
|
||||
|
||||
define ptx_device i16 @t4_shared_u16() {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_shared_i16;
|
||||
|
@@ -6,9 +6,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i16[20];
|
||||
@array_constant_i16 = external addrspace(1) constant [10 x i16]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i16[20];
|
||||
@array_local_i16 = external addrspace(2) global [10 x i16]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i16[20];
|
||||
@array_shared_i16 = external addrspace(4) global [10 x i16]
|
||||
|
||||
@@ -18,9 +15,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i32[40];
|
||||
@array_constant_i32 = external addrspace(1) constant [10 x i32]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i32[40];
|
||||
@array_local_i32 = external addrspace(2) global [10 x i32]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i32[40];
|
||||
@array_shared_i32 = external addrspace(4) global [10 x i32]
|
||||
|
||||
@@ -30,9 +24,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_i64[80];
|
||||
@array_constant_i64 = external addrspace(1) constant [10 x i64]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_i64[80];
|
||||
@array_local_i64 = external addrspace(2) global [10 x i64]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_i64[80];
|
||||
@array_shared_i64 = external addrspace(4) global [10 x i64]
|
||||
|
||||
@@ -42,9 +33,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_float[40];
|
||||
@array_constant_float = external addrspace(1) constant [10 x float]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_float[40];
|
||||
@array_local_float = external addrspace(2) global [10 x float]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_float[40];
|
||||
@array_shared_float = external addrspace(4) global [10 x float]
|
||||
|
||||
@@ -54,9 +42,6 @@
|
||||
;CHECK: .extern .const .b8 array_constant_double[80];
|
||||
@array_constant_double = external addrspace(1) constant [10 x double]
|
||||
|
||||
;CHECK: .extern .local .b8 array_local_double[80];
|
||||
@array_local_double = external addrspace(2) global [10 x double]
|
||||
|
||||
;CHECK: .extern .shared .b8 array_shared_double[80];
|
||||
@array_shared_double = external addrspace(4) global [10 x double]
|
||||
|
||||
@@ -251,56 +236,6 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_local_u16(i16 %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i16;
|
||||
;CHECK: st.local.u16 [%r[[R0]]], %rh{{[0-9]+}};
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i16] addrspace(2)* @array_local_i16, i32 0, i32 0
|
||||
store i16 %x, i16 addrspace(2)* %i
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_local_u32(i32 %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i32;
|
||||
;CHECK: st.local.u32 [%r[[R0]]], %r{{[0-9]+}};
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i32] addrspace(2)* @array_local_i32, i32 0, i32 0
|
||||
store i32 %x, i32 addrspace(2)* %i
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_local_u64(i64 %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_i64;
|
||||
;CHECK: st.local.u64 [%r[[R0]]], %rd{{[0-9]+}};
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x i64] addrspace(2)* @array_local_i64, i32 0, i32 0
|
||||
store i64 %x, i64 addrspace(2)* %i
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_local_f32(float %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_float;
|
||||
;CHECK: st.local.f32 [%r[[R0]]], %f{{[0-9]+}};
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x float] addrspace(2)* @array_local_float, i32 0, i32 0
|
||||
store float %x, float addrspace(2)* %i
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_local_f64(double %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_local_double;
|
||||
;CHECK: st.local.f64 [%r[[R0]]], %fd{{[0-9]+}};
|
||||
;CHECK: ret;
|
||||
%i = getelementptr [10 x double] addrspace(2)* @array_local_double, i32 0, i32 0
|
||||
store double %x, double addrspace(2)* %i
|
||||
ret void
|
||||
}
|
||||
|
||||
define ptx_device void @t4_shared_u16(i16 %x) {
|
||||
entry:
|
||||
;CHECK: mov.u32 %r[[R0:[0-9]+]], array_shared_i16;
|
||||
|
Reference in New Issue
Block a user