[PATCH] R600/SI: Change mubuf offsets to print as decimal

Tom Stellard tom at stellard.net
Tue Dec 2 18:17:28 PST 2014


On Tue, Dec 02, 2014 at 06:53:29AM +0000, Matt Arsenault wrote:
> This matches SC's behavior.

LGTM.

> 
> http://reviews.llvm.org/D6474
> 
> Files:
>   lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
>   test/CodeGen/R600/commute_modifiers.ll
>   test/CodeGen/R600/ctpop.ll
>   test/CodeGen/R600/ds_write2.ll
>   test/CodeGen/R600/ds_write2st64.ll
>   test/CodeGen/R600/fmax_legacy.ll
>   test/CodeGen/R600/fmin_legacy.ll
>   test/CodeGen/R600/fmuladd.ll
>   test/CodeGen/R600/frem.ll
>   test/CodeGen/R600/global_atomics.ll
>   test/CodeGen/R600/llvm.AMDGPU.div_scale.ll
>   test/CodeGen/R600/llvm.AMDGPU.umad24.ll
>   test/CodeGen/R600/mad-sub.ll
>   test/CodeGen/R600/mubuf.ll
>   test/CodeGen/R600/private-memory.ll
>   test/CodeGen/R600/schedule-global-loads.ll
>   test/CodeGen/R600/si-triv-disjoint-mem-access.ll

> Index: lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> ===================================================================
> --- lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> +++ lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> @@ -74,7 +74,7 @@
>                                          raw_ostream &O) {
>    if (MI->getOperand(OpNo).getImm()) {
>      O << " offset:";
> -    printU16ImmOperand(MI, OpNo, O);
> +    printU16ImmDecOperand(MI, OpNo, O);
>    }
>  }
>  
> Index: test/CodeGen/R600/commute_modifiers.ll
> ===================================================================
> --- test/CodeGen/R600/commute_modifiers.ll
> +++ test/CodeGen/R600/commute_modifiers.ll
> @@ -65,7 +65,7 @@
>  
>  ; FUNC-LABEL: @commute_add_fabs_f32
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_add_f32_e64 [[REG:v[0-9]+]], [[X]], |[[Y]]|
>  ; SI-NEXT: buffer_store_dword [[REG]]
>  define void @commute_add_fabs_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -82,7 +82,7 @@
>  
>  ; FUNC-LABEL: @commute_mul_fneg_f32
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mul_f32_e64 [[REG:v[0-9]+]], [[X]], -[[Y]]
>  ; SI-NEXT: buffer_store_dword [[REG]]
>  define void @commute_mul_fneg_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -99,7 +99,7 @@
>  
>  ; FUNC-LABEL: @commute_mul_fabs_fneg_f32
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mul_f32_e64 [[REG:v[0-9]+]], [[X]], -|[[Y]]|
>  ; SI-NEXT: buffer_store_dword [[REG]]
>  define void @commute_mul_fabs_fneg_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -118,7 +118,7 @@
>  ; There's no reason to commute this.
>  ; FUNC-LABEL: @commute_mul_fabs_x_fabs_y_f32
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mul_f32_e64 [[REG:v[0-9]+]], |[[X]]|, |[[Y]]|
>  ; SI-NEXT: buffer_store_dword [[REG]]
>  define void @commute_mul_fabs_x_fabs_y_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -136,7 +136,7 @@
>  
>  ; FUNC-LABEL: @commute_mul_fabs_x_fneg_fabs_y_f32
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mul_f32_e64 [[REG:v[0-9]+]], |[[X]]|, -|[[Y]]|
>  ; SI-NEXT: buffer_store_dword [[REG]]
>  define void @commute_mul_fabs_x_fneg_fabs_y_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -158,7 +158,7 @@
>  
>  ; SI-LABEL: {{^}}fma_a_2.0_neg_b_f32
>  ; SI-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_fma_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], |[[R2]]|
>  ; SI: buffer_store_dword [[RESULT]]
>  define void @fma_a_2.0_neg_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> Index: test/CodeGen/R600/ctpop.ll
> ===================================================================
> --- test/CodeGen/R600/ctpop.ll
> +++ test/CodeGen/R600/ctpop.ll
> @@ -250,7 +250,7 @@
>  
>  ; FUNC-LABEL: {{^}}v_ctpop_i32_add_vvar_inv:
>  ; SI-DAG: buffer_load_dword [[VAL:v[0-9]+]], s[{{[0-9]+:[0-9]+}}], {{0$}}
> -; SI-DAG: buffer_load_dword [[VAR:v[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0 offset:0x10
> +; SI-DAG: buffer_load_dword [[VAR:v[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0 offset:16
>  ; SI: v_bcnt_u32_b32_e32 [[RESULT:v[0-9]+]], [[VAL]], [[VAR]]
>  ; SI: buffer_store_dword [[RESULT]],
>  ; SI: s_endpgm
> Index: test/CodeGen/R600/ds_write2.ll
> ===================================================================
> --- test/CodeGen/R600/ds_write2.ll
> +++ test/CodeGen/R600/ds_write2.ll
> @@ -23,7 +23,7 @@
>  
>  ; SI-LABEL: @simple_write2_two_val_f32
>  ; SI-DAG: buffer_load_dword [[VAL0:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI-DAG: v_lshlrev_b32_e32 [[VPTR:v[0-9]+]], 2, v{{[0-9]+}}
>  ; SI: ds_write2_b32 [[VPTR]], [[VAL0]], [[VAL1]] offset0:0 offset1:8 [M0]
>  ; SI: s_endpgm
> @@ -142,7 +142,7 @@
>  
>  ; SI-LABEL: @simple_write2_two_val_max_offset_f32
>  ; SI-DAG: buffer_load_dword [[VAL0:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI-DAG: v_lshlrev_b32_e32 [[VPTR:v[0-9]+]], 2, v{{[0-9]+}}
>  ; SI: ds_write2_b32 [[VPTR]], [[VAL0]], [[VAL1]] offset0:0 offset1:255 [M0]
>  ; SI: s_endpgm
> @@ -302,7 +302,7 @@
>  
>  ; SI-LABEL: @simple_write2_two_val_f64
>  ; SI-DAG: buffer_load_dwordx2 [[VAL0:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dwordx2 [[VAL1:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x8
> +; SI-DAG: buffer_load_dwordx2 [[VAL1:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:8
>  ; SI-DAG: v_lshlrev_b32_e32 [[VPTR:v[0-9]+]], 3, v{{[0-9]+}}
>  ; SI: ds_write2_b64 [[VPTR]], [[VAL0]], [[VAL1]] offset0:0 offset1:8 [M0]
>  ; SI: s_endpgm
> Index: test/CodeGen/R600/ds_write2st64.ll
> ===================================================================
> --- test/CodeGen/R600/ds_write2st64.ll
> +++ test/CodeGen/R600/ds_write2st64.ll
> @@ -23,7 +23,7 @@
>  
>  ; SI-LABEL: @simple_write2st64_two_val_f32_2_5
>  ; SI-DAG: buffer_load_dword [[VAL0:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI-DAG: v_lshlrev_b32_e32 [[VPTR:v[0-9]+]], 2, v{{[0-9]+}}
>  ; SI: ds_write2st64_b32 [[VPTR]], [[VAL0]], [[VAL1]] offset0:2 offset1:5 [M0]
>  ; SI: s_endpgm
> @@ -44,7 +44,7 @@
>  
>  ; SI-LABEL: @simple_write2st64_two_val_max_offset_f32
>  ; SI-DAG: buffer_load_dword [[VAL0:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[VAL1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI-DAG: v_lshlrev_b32_e32 [[VPTR:v[0-9]+]], 2, v{{[0-9]+}}
>  ; SI: ds_write2st64_b32 [[VPTR]], [[VAL0]], [[VAL1]] offset0:0 offset1:255 [M0]
>  ; SI: s_endpgm
> @@ -64,7 +64,7 @@
>  
>  ; SI-LABEL: @simple_write2st64_two_val_max_offset_f64
>  ; SI-DAG: buffer_load_dwordx2 [[VAL0:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dwordx2 [[VAL1:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x8
> +; SI-DAG: buffer_load_dwordx2 [[VAL1:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:8
>  ; SI-DAG: v_add_i32_e32 [[VPTR:v[0-9]+]],
>  ; SI: ds_write2st64_b64 [[VPTR]], [[VAL0]], [[VAL1]] offset0:4 offset1:127 [M0]
>  ; SI: s_endpgm
> Index: test/CodeGen/R600/fmax_legacy.ll
> ===================================================================
> --- test/CodeGen/R600/fmax_legacy.ll
> +++ test/CodeGen/R600/fmax_legacy.ll
> @@ -5,7 +5,7 @@
>  
>  ; FUNC-LABEL: @test_fmax_legacy_uge_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_max_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  ; EG: MAX
>  define void @test_fmax_legacy_uge_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -24,7 +24,7 @@
>  
>  ; FUNC-LABEL: @test_fmax_legacy_oge_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_max_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  ; EG: MAX
>  define void @test_fmax_legacy_oge_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -43,7 +43,7 @@
>  
>  ; FUNC-LABEL: @test_fmax_legacy_ugt_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_max_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  ; EG: MAX
>  define void @test_fmax_legacy_ugt_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> @@ -62,7 +62,7 @@
>  
>  ; FUNC-LABEL: @test_fmax_legacy_ogt_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_max_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  ; EG: MAX
>  define void @test_fmax_legacy_ogt_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
> Index: test/CodeGen/R600/fmin_legacy.ll
> ===================================================================
> --- test/CodeGen/R600/fmin_legacy.ll
> +++ test/CodeGen/R600/fmin_legacy.ll
> @@ -18,7 +18,7 @@
>  
>  ; FUNC-LABEL: @test_fmin_legacy_ule_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_min_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  define void @test_fmin_legacy_ule_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
>    %tid = call i32 @llvm.r600.read.tidig.x() #1
> @@ -36,7 +36,7 @@
>  
>  ; FUNC-LABEL: @test_fmin_legacy_ole_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_min_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  define void @test_fmin_legacy_ole_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
>    %tid = call i32 @llvm.r600.read.tidig.x() #1
> @@ -54,7 +54,7 @@
>  
>  ; FUNC-LABEL: @test_fmin_legacy_olt_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_min_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  define void @test_fmin_legacy_olt_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
>    %tid = call i32 @llvm.r600.read.tidig.x() #1
> @@ -72,7 +72,7 @@
>  
>  ; FUNC-LABEL: @test_fmin_legacy_ult_f32
>  ; SI: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_min_legacy_f32_e32 {{v[0-9]+}}, [[A]], [[B]]
>  define void @test_fmin_legacy_ult_f32(float addrspace(1)* %out, float addrspace(1)* %in) #0 {
>    %tid = call i32 @llvm.r600.read.tidig.x() #1
> Index: test/CodeGen/R600/fmuladd.ll
> ===================================================================
> --- test/CodeGen/R600/fmuladd.ll
> +++ test/CodeGen/R600/fmuladd.ll
> @@ -33,7 +33,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_2.0_a_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_2.0_a_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -52,7 +52,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_a_2.0_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_a_2.0_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -71,7 +71,7 @@
>  
>  ; CHECK-LABEL: {{^}}fadd_a_a_b_f32:
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fadd_a_a_b_f32(float addrspace(1)* %out,
> @@ -93,7 +93,7 @@
>  
>  ; CHECK-LABEL: {{^}}fadd_b_a_a_f32:
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fadd_b_a_a_f32(float addrspace(1)* %out,
> @@ -115,7 +115,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_neg_2.0_a_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], -2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_neg_2.0_a_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -135,7 +135,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_neg_2.0_neg_a_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_neg_2.0_neg_a_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -157,7 +157,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_2.0_neg_a_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], -2.0, [[R1]], [[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_2.0_neg_a_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -179,7 +179,7 @@
>  
>  ; CHECK-LABEL: {{^}}fmuladd_2.0_a_neg_b_f32
>  ; CHECK-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; CHECK-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; CHECK: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], -[[R2]]
>  ; CHECK: buffer_store_dword [[RESULT]]
>  define void @fmuladd_2.0_a_neg_b_f32(float addrspace(1)* %out, float addrspace(1)* %in) {
> Index: test/CodeGen/R600/frem.ll
> ===================================================================
> --- test/CodeGen/R600/frem.ll
> +++ test/CodeGen/R600/frem.ll
> @@ -2,7 +2,7 @@
>  
>  ; FUNC-LABEL: {{^}}frem_f32:
>  ; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{.*$}}
> -; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{.*}} offset:0x10
> +; SI-DAG: buffer_load_dword [[Y:v[0-9]+]], {{.*}} offset:16
>  ; SI-DAG: v_cmp
>  ; SI-DAG: v_mul_f32
>  ; SI: v_rcp_f32_e32
> @@ -22,7 +22,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}unsafe_frem_f32:
> -; SI: buffer_load_dword [[Y:v[0-9]+]], {{.*}} offset:0x10
> +; SI: buffer_load_dword [[Y:v[0-9]+]], {{.*}} offset:16
>  ; SI: buffer_load_dword [[X:v[0-9]+]], {{.*}}
>  ; SI: v_rcp_f32_e32 [[INVY:v[0-9]+]], [[Y]]
>  ; SI: v_mul_f32_e32 [[DIV:v[0-9]+]], [[INVY]], [[X]]
> Index: test/CodeGen/R600/global_atomics.ll
> ===================================================================
> --- test/CodeGen/R600/global_atomics.ll
> +++ test/CodeGen/R600/global_atomics.ll
> @@ -1,7 +1,7 @@
>  ; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI --check-prefix=FUNC %s
>  
>  ; FUNC-LABEL: {{^}}atomic_add_i32_offset:
> -; SI: buffer_atomic_add v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_add v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_add_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -10,7 +10,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_add_i32_ret_offset:
> -; SI: buffer_atomic_add [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_add [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_add_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -21,7 +21,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_add_i32_addr64_offset:
> -; SI: buffer_atomic_add v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_add v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_add_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -31,7 +31,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_add_i32_ret_addr64_offset:
> -; SI: buffer_atomic_add [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_add [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_add_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -81,7 +81,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_and_i32_offset:
> -; SI: buffer_atomic_and v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_and v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_and_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -90,7 +90,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_and_i32_ret_offset:
> -; SI: buffer_atomic_and [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_and [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_and_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -101,7 +101,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_and_i32_addr64_offset:
> -; SI: buffer_atomic_and v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_and v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_and_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -111,7 +111,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_and_i32_ret_addr64_offset:
> -; SI: buffer_atomic_and [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_and [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_and_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -161,7 +161,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_sub_i32_offset:
> -; SI: buffer_atomic_sub v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_sub v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_sub_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -170,7 +170,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_sub_i32_ret_offset:
> -; SI: buffer_atomic_sub [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_sub [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_sub_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -181,7 +181,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_sub_i32_addr64_offset:
> -; SI: buffer_atomic_sub v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_sub v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_sub_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -191,7 +191,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_sub_i32_ret_addr64_offset:
> -; SI: buffer_atomic_sub [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_sub [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_sub_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -241,7 +241,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_max_i32_offset:
> -; SI: buffer_atomic_smax v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_smax v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_max_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -250,7 +250,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_max_i32_ret_offset:
> -; SI: buffer_atomic_smax [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_smax [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_max_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -261,7 +261,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_max_i32_addr64_offset:
> -; SI: buffer_atomic_smax v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_smax v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_max_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -271,7 +271,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_max_i32_ret_addr64_offset:
> -; SI: buffer_atomic_smax [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_smax [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_max_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -321,7 +321,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umax_i32_offset:
> -; SI: buffer_atomic_umax v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_umax v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_umax_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -330,7 +330,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umax_i32_ret_offset:
> -; SI: buffer_atomic_umax [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_umax [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_umax_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -341,7 +341,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umax_i32_addr64_offset:
> -; SI: buffer_atomic_umax v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_umax v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_umax_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -351,7 +351,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umax_i32_ret_addr64_offset:
> -; SI: buffer_atomic_umax [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_umax [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_umax_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -401,7 +401,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_min_i32_offset:
> -; SI: buffer_atomic_smin v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_smin v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_min_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -410,7 +410,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_min_i32_ret_offset:
> -; SI: buffer_atomic_smin [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_smin [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_min_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -421,7 +421,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_min_i32_addr64_offset:
> -; SI: buffer_atomic_smin v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_smin v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_min_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -431,7 +431,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_min_i32_ret_addr64_offset:
> -; SI: buffer_atomic_smin [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_smin [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_min_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -481,7 +481,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umin_i32_offset:
> -; SI: buffer_atomic_umin v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_umin v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_umin_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -490,7 +490,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umin_i32_ret_offset:
> -; SI: buffer_atomic_umin [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_umin [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_umin_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -501,7 +501,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umin_i32_addr64_offset:
> -; SI: buffer_atomic_umin v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_umin v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_umin_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -511,7 +511,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_umin_i32_ret_addr64_offset:
> -; SI: buffer_atomic_umin [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_umin [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_umin_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -561,7 +561,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_or_i32_offset:
> -; SI: buffer_atomic_or v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_or v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_or_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -570,7 +570,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_or_i32_ret_offset:
> -; SI: buffer_atomic_or [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_or [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_or_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -581,7 +581,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_or_i32_addr64_offset:
> -; SI: buffer_atomic_or v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_or v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_or_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -591,7 +591,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_or_i32_ret_addr64_offset:
> -; SI: buffer_atomic_or [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_or [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_or_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -641,7 +641,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xchg_i32_offset:
> -; SI: buffer_atomic_swap v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_swap v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_xchg_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -650,7 +650,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xchg_i32_ret_offset:
> -; SI: buffer_atomic_swap [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_swap [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_xchg_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -661,7 +661,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xchg_i32_addr64_offset:
> -; SI: buffer_atomic_swap v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_swap v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_xchg_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -671,7 +671,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xchg_i32_ret_addr64_offset:
> -; SI: buffer_atomic_swap [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_swap [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_xchg_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> @@ -721,7 +721,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xor_i32_offset:
> -; SI: buffer_atomic_xor v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10{{$}}
> +; SI: buffer_atomic_xor v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
>  define void @atomic_xor_i32_offset(i32 addrspace(1)* %out, i32 %in) {
>  entry:
>    %gep = getelementptr i32 addrspace(1)* %out, i32 4
> @@ -730,7 +730,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xor_i32_ret_offset:
> -; SI: buffer_atomic_xor [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:0x10 glc {{$}}
> +; SI: buffer_atomic_xor [[RET:v[0-9]+]], s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16 glc {{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_xor_i32_ret_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in) {
>  entry:
> @@ -741,7 +741,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xor_i32_addr64_offset:
> -; SI: buffer_atomic_xor v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10{{$}}
> +; SI: buffer_atomic_xor v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16{{$}}
>  define void @atomic_xor_i32_addr64_offset(i32 addrspace(1)* %out, i32 %in, i64 %index) {
>  entry:
>    %ptr = getelementptr i32 addrspace(1)* %out, i64 %index
> @@ -751,7 +751,7 @@
>  }
>  
>  ; FUNC-LABEL: {{^}}atomic_xor_i32_ret_addr64_offset:
> -; SI: buffer_atomic_xor [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:0x10 glc{{$}}
> +; SI: buffer_atomic_xor [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], 0 addr64 offset:16 glc{{$}}
>  ; SI: buffer_store_dword [[RET]]
>  define void @atomic_xor_i32_ret_addr64_offset(i32 addrspace(1)* %out, i32 addrspace(1)* %out2, i32 %in, i64 %index) {
>  entry:
> Index: test/CodeGen/R600/llvm.AMDGPU.div_scale.ll
> ===================================================================
> --- test/CodeGen/R600/llvm.AMDGPU.div_scale.ll
> +++ test/CodeGen/R600/llvm.AMDGPU.div_scale.ll
> @@ -6,7 +6,7 @@
>  
>  ; SI-LABEL @test_div_scale_f32_1:
>  ; SI-DAG: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64
> -; SI-DAG: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_div_scale_f32 [[RESULT0:v[0-9]+]], [[RESULT1:s\[[0-9]+:[0-9]+\]]], [[B]], [[B]], [[A]]
>  ; SI: buffer_store_dword [[RESULT0]]
>  ; SI: s_endpgm
> @@ -26,7 +26,7 @@
>  
>  ; SI-LABEL @test_div_scale_f32_2:
>  ; SI-DAG: buffer_load_dword [[A:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64
> -; SI-DAG: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[B:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_div_scale_f32 [[RESULT0:v[0-9]+]], [[RESULT1:s\[[0-9]+:[0-9]+\]]], [[A]], [[B]], [[A]]
>  ; SI: buffer_store_dword [[RESULT0]]
>  ; SI: s_endpgm
> @@ -46,7 +46,7 @@
>  
>  ; SI-LABEL @test_div_scale_f64_1:
>  ; SI-DAG: buffer_load_dwordx2 [[A:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64
> -; SI-DAG: buffer_load_dwordx2 [[B:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x8
> +; SI-DAG: buffer_load_dwordx2 [[B:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:8
>  ; SI: v_div_scale_f64 [[RESULT0:v\[[0-9]+:[0-9]+\]]], [[RESULT1:s\[[0-9]+:[0-9]+\]]], [[B]], [[B]], [[A]]
>  ; SI: buffer_store_dwordx2 [[RESULT0]]
>  ; SI: s_endpgm
> @@ -66,7 +66,7 @@
>  
>  ; SI-LABEL @test_div_scale_f64_1:
>  ; SI-DAG: buffer_load_dwordx2 [[A:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64
> -; SI-DAG: buffer_load_dwordx2 [[B:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x8
> +; SI-DAG: buffer_load_dwordx2 [[B:v\[[0-9]+:[0-9]+\]]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:8
>  ; SI: v_div_scale_f64 [[RESULT0:v\[[0-9]+:[0-9]+\]]], [[RESULT1:s\[[0-9]+:[0-9]+\]]], [[A]], [[B]], [[A]]
>  ; SI: buffer_store_dwordx2 [[RESULT0]]
>  ; SI: s_endpgm
> Index: test/CodeGen/R600/llvm.AMDGPU.umad24.ll
> ===================================================================
> --- test/CodeGen/R600/llvm.AMDGPU.umad24.ll
> +++ test/CodeGen/R600/llvm.AMDGPU.umad24.ll
> @@ -20,7 +20,7 @@
>  
>  ; FUNC-LABEL: {{^}}commute_umad24:
>  ; SI-DAG: buffer_load_dword [[SRC0:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[SRC2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[SRC2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mad_u32_u24 [[RESULT:v[0-9]+]], 4, [[SRC0]], [[SRC2]]
>  ; SI: buffer_store_dword [[RESULT]]
>  define void @commute_umad24(i32 addrspace(1)* %out, i32 addrspace(1)* %in) nounwind {
> Index: test/CodeGen/R600/mad-sub.ll
> ===================================================================
> --- test/CodeGen/R600/mad-sub.ll
> +++ test/CodeGen/R600/mad-sub.ll
> @@ -171,7 +171,7 @@
>  
>  ; FUNC-LABEL: {{^}}fsub_c_fadd_a_a:
>  ; SI-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mad_f32 [[RESULT:v[0-9]+]], -2.0, [[R1]], [[R2]]
>  ; SI: buffer_store_dword [[RESULT]]
>  define void @fsub_c_fadd_a_a(float addrspace(1)* %out, float addrspace(1)* %in) {
> @@ -192,7 +192,7 @@
>  
>  ; FUNC-LABEL: {{^}}fsub_fadd_a_a_c:
>  ; SI-DAG: buffer_load_dword [[R1:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64{{$}}
> -; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:0x4
> +; SI-DAG: buffer_load_dword [[R2:v[0-9]+]], {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, 0 addr64 offset:4
>  ; SI: v_mad_f32 [[RESULT:v[0-9]+]], 2.0, [[R1]], -[[R2]]
>  ; SI: buffer_store_dword [[RESULT]]
>  define void @fsub_fadd_a_a_c(float addrspace(1)* %out, float addrspace(1)* %in) {
> Index: test/CodeGen/R600/mubuf.ll
> ===================================================================
> --- test/CodeGen/R600/mubuf.ll
> +++ test/CodeGen/R600/mubuf.ll
> @@ -8,7 +8,7 @@
>  
>  ; MUBUF load with an immediate byte offset that fits into 12-bits
>  ; CHECK-LABEL: {{^}}mubuf_load0:
> -; CHECK: buffer_load_dword v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:0x4 ; encoding: [0x04,0x00,0x30,0xe0
> +; CHECK: buffer_load_dword v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:4 ; encoding: [0x04,0x00,0x30,0xe0
>  define void @mubuf_load0(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
>  entry:
>    %0 = getelementptr i32 addrspace(1)* %in, i64 1
> @@ -19,7 +19,7 @@
>  
>  ; MUBUF load with the largest possible immediate offset
>  ; CHECK-LABEL: {{^}}mubuf_load1:
> -; CHECK: buffer_load_ubyte v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:0xfff ; encoding: [0xff,0x0f,0x20,0xe0
> +; CHECK: buffer_load_ubyte v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:4095 ; encoding: [0xff,0x0f,0x20,0xe0
>  define void @mubuf_load1(i8 addrspace(1)* %out, i8 addrspace(1)* %in) {
>  entry:
>    %0 = getelementptr i8 addrspace(1)* %in, i64 4095
> @@ -42,7 +42,7 @@
>  ; MUBUF load with a 12-bit immediate offset and a register offset
>  ; CHECK-LABEL: {{^}}mubuf_load3:
>  ; CHECK-NOT: ADD
> -; CHECK: buffer_load_dword v{{[0-9]}}, v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x30,0xe0
> +; CHECK: buffer_load_dword v{{[0-9]}}, v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], 0 addr64 offset:4 ; encoding: [0x04,0x80,0x30,0xe0
>  define void @mubuf_load3(i32 addrspace(1)* %out, i32 addrspace(1)* %in, i64 %offset) {
>  entry:
>    %0 = getelementptr i32 addrspace(1)* %in, i64 %offset
> @@ -58,7 +58,7 @@
>  
>  ; MUBUF store with an immediate byte offset that fits into 12-bits
>  ; CHECK-LABEL: {{^}}mubuf_store0:
> -; CHECK: buffer_store_dword v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:0x4 ; encoding: [0x04,0x00,0x70,0xe0
> +; CHECK: buffer_store_dword v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:4 ; encoding: [0x04,0x00,0x70,0xe0
>  define void @mubuf_store0(i32 addrspace(1)* %out) {
>  entry:
>    %0 = getelementptr i32 addrspace(1)* %out, i64 1
> @@ -68,7 +68,7 @@
>  
>  ; MUBUF store with the largest possible immediate offset
>  ; CHECK-LABEL: {{^}}mubuf_store1:
> -; CHECK: buffer_store_byte v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:0xfff ; encoding: [0xff,0x0f,0x60,0xe0
> +; CHECK: buffer_store_byte v{{[0-9]}}, s[{{[0-9]:[0-9]}}], 0 offset:4095 ; encoding: [0xff,0x0f,0x60,0xe0
>  
>  define void @mubuf_store1(i8 addrspace(1)* %out) {
>  entry:
> @@ -90,7 +90,7 @@
>  ; MUBUF store with a 12-bit immediate offset and a register offset
>  ; CHECK-LABEL: {{^}}mubuf_store3:
>  ; CHECK-NOT: ADD
> -; CHECK: buffer_store_dword v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:0x4 ; encoding: [0x04,0x80,0x70,0xe0
> +; CHECK: buffer_store_dword v{{[0-9]}}, v[{{[0-9]:[0-9]}}], s[{{[0-9]:[0-9]}}], 0 addr64 offset:4 ; encoding: [0x04,0x80,0x70,0xe0
>  define void @mubuf_store3(i32 addrspace(1)* %out, i64 %offset) {
>  entry:
>    %0 = getelementptr i32 addrspace(1)* %out, i64 %offset
> @@ -107,7 +107,7 @@
>  }
>  
>  ; CHECK-LABEL: {{^}}store_sgpr_ptr_offset:
> -; CHECK: buffer_store_dword v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:0x28
> +; CHECK: buffer_store_dword v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}, 0 offset:40
>  define void @store_sgpr_ptr_offset(i32 addrspace(1)* %out) #0 {
>    %out.gep = getelementptr i32 addrspace(1)* %out, i32 10
>    store i32 99, i32 addrspace(1)* %out.gep, align 4
> Index: test/CodeGen/R600/private-memory.ll
> ===================================================================
> --- test/CodeGen/R600/private-memory.ll
> +++ test/CodeGen/R600/private-memory.ll
> @@ -117,7 +117,7 @@
>  ; R600: MOVA_INT
>  
>  ; SI-PROMOTE-DAG: buffer_store_short v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen ; encoding: [0x00,0x10,0x68,0xe0
> -; SI-PROMOTE-DAG: buffer_store_short v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:0x2 ; encoding: [0x02,0x10,0x68,0xe0
> +; SI-PROMOTE-DAG: buffer_store_short v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:2 ; encoding: [0x02,0x10,0x68,0xe0
>  ; SI-PROMOTE: buffer_load_sshort v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}}
>  define void @short_array(i32 addrspace(1)* %out, i32 %index) {
>  entry:
> @@ -138,7 +138,7 @@
>  ; R600: MOVA_INT
>  
>  ; SI-DAG: buffer_store_byte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen ; encoding: [0x00,0x10,0x60,0xe0
> -; SI-DAG: buffer_store_byte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:0x1 ; encoding: [0x01,0x10,0x60,0xe0
> +; SI-DAG: buffer_store_byte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:1 ; encoding: [0x01,0x10,0x60,0xe0
>  define void @char_array(i32 addrspace(1)* %out, i32 %index) {
>  entry:
>    %0 = alloca [2 x i8]
> @@ -296,7 +296,7 @@
>  ; FUNC-LABEL: ptrtoint:
>  ; SI-NOT: ds_write
>  ; SI: buffer_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen
> -; SI: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:0x5
> +; SI: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen offset:5
>  define void @ptrtoint(i32 addrspace(1)* %out, i32 %a, i32 %b) {
>    %alloca = alloca [16 x i32]
>    %tmp0 = getelementptr [16 x i32]* %alloca, i32 0, i32 %a
> Index: test/CodeGen/R600/schedule-global-loads.ll
> ===================================================================
> --- test/CodeGen/R600/schedule-global-loads.ll
> +++ test/CodeGen/R600/schedule-global-loads.ll
> @@ -10,7 +10,7 @@
>  
>  ; FUNC-LABEL: {{^}}cluster_global_arg_loads:
>  ; SI-DAG: buffer_load_dword [[REG0:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0{{$}}
> -; SI-DAG: buffer_load_dword [[REG1:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:0x4
> +; SI-DAG: buffer_load_dword [[REG1:v[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0 offset:4
>  ; SI: buffer_store_dword [[REG0]]
>  ; SI: buffer_store_dword [[REG1]]
>  define void @cluster_global_arg_loads(i32 addrspace(1)* %out0, i32 addrspace(1)* %out1, i32 addrspace(1)* %ptr) #0 {
> Index: test/CodeGen/R600/si-triv-disjoint-mem-access.ll
> ===================================================================
> --- test/CodeGen/R600/si-triv-disjoint-mem-access.ll
> +++ test/CodeGen/R600/si-triv-disjoint-mem-access.ll
> @@ -183,11 +183,11 @@
>  }
>  
>  ; FUNC-LABEL: @reorder_global_offsets
> -; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:0xc
> -; CI: buffer_load_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:0x190
> -; CI: buffer_load_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:0x194
> -; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:0x190
> -; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:0x194
> +; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:12
> +; CI: buffer_load_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:400
> +; CI: buffer_load_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:404
> +; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:400
> +; CI: buffer_store_dword {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}, 0 offset:404
>  ; CI: buffer_store_dword
>  ; CI: s_endpgm
>  define void @reorder_global_offsets(i32 addrspace(1)* nocapture %out, i32 addrspace(1)* noalias nocapture readnone %gptr, i32 addrspace(1)* noalias nocapture %ptr0) #0 {

> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list