Mercurial > hg > CbC > CbC_llvm
diff llvm/test/CodeGen/AMDGPU/collapse-endcf.ll @ 173:0572611fdcc8 llvm10 llvm12
reorgnization done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:55:54 +0900 |
parents | 1d019706d866 |
children | 5f17cb93ff66 |
line wrap: on
line diff
--- a/llvm/test/CodeGen/AMDGPU/collapse-endcf.ll Mon May 25 11:50:15 2020 +0900 +++ b/llvm/test/CodeGen/AMDGPU/collapse-endcf.ll Mon May 25 11:55:54 2020 +0900 @@ -1,7 +1,6 @@ -; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefixes=GCN,ALL %s -; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs -amdgpu-opt-exec-mask-pre-ra=0 < %s | FileCheck -enable-var-scope -check-prefixes=DISABLED,ALL %s +; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs -amdgpu-remove-redundant-endcf < %s | FileCheck -enable-var-scope -check-prefix=GCN %s -; ALL-LABEL: {{^}}simple_nested_if: +; GCN-LABEL: {{^}}simple_nested_if: ; GCN: s_and_saveexec_b64 [[SAVEEXEC:s\[[0-9:]+\]]] ; GCN-NEXT: s_cbranch_execz [[ENDIF:BB[0-9_]+]] ; GCN: s_and_b64 exec, exec, vcc @@ -13,9 +12,6 @@ ; GCN: ds_write_b32 ; GCN: s_endpgm - -; DISABLED: s_or_b64 exec, exec -; DISABLED: s_or_b64 exec, exec define amdgpu_kernel void @simple_nested_if(i32 addrspace(1)* nocapture %arg) { bb: %tmp = tail call i32 @llvm.amdgcn.workitem.id.x() @@ -39,7 +35,7 @@ ret void } -; ALL-LABEL: {{^}}uncollapsable_nested_if: +; GCN-LABEL: {{^}}uncollapsable_nested_if: ; GCN: s_and_saveexec_b64 [[SAVEEXEC_OUTER:s\[[0-9:]+\]]] ; GCN-NEXT: s_cbranch_execz [[ENDIF_OUTER:BB[0-9_]+]] ; GCN: s_and_saveexec_b64 [[SAVEEXEC_INNER:s\[[0-9:]+\]]] @@ -82,7 +78,7 @@ ret void } -; ALL-LABEL: {{^}}nested_if_if_else: +; GCN-LABEL: {{^}}nested_if_if_else: ; GCN: s_and_saveexec_b64 [[SAVEEXEC_OUTER:s\[[0-9:]+\]]] ; GCN-NEXT: s_cbranch_execz [[ENDIF_OUTER:BB[0-9_]+]] ; GCN: s_and_saveexec_b64 [[SAVEEXEC_INNER:s\[[0-9:]+\]]] @@ -128,7 +124,7 @@ ret void } -; ALL-LABEL: {{^}}nested_if_else_if: +; GCN-LABEL: {{^}}nested_if_else_if: ; GCN: s_and_saveexec_b64 [[SAVEEXEC_OUTER:s\[[0-9:]+\]]] ; GCN-NEXT: s_xor_b64 [[SAVEEXEC_OUTER2:s\[[0-9:]+\]]], exec, [[SAVEEXEC_OUTER]] ; GCN-NEXT: s_cbranch_execz [[THEN_OUTER:BB[0-9_]+]] @@ -146,16 +142,15 @@ ; GCN-NEXT: s_cbranch_execz [[ENDIF_OUTER:BB[0-9_]+]] ; GCN-NEXT: ; %bb.{{[0-9]+}}: ; GCN: store_dword -; GCN-NEXT: s_and_saveexec_b64 [[SAVEEXEC_INNER_IF_OUTER_THEN:s\[[0-9:]+\]]] +; GCN-NEXT: s_and_saveexec_b64 [[SAVEEXEC_ELSE:s\[[0-9:]+\]]], ; GCN-NEXT: s_cbranch_execz [[FLOW1:BB[0-9_]+]] ; GCN-NEXT: ; %bb.{{[0-9]+}}: ; GCN: store_dword ; GCN-NEXT: [[FLOW1]]: -; GCN-NEXT: s_or_b64 exec, exec, [[SAVEEXEC_INNER_IF_OUTER_THEN]] -; GCN-NEXT: {{^}}[[ENDIF_OUTER]]: -; GCN-NEXT: s_or_b64 exec, exec, [[SAVEEXEC_OUTER]] -; GCN: ds_write_b32 -; GCN: s_endpgm +; GCN-NEXT: s_or_b64 exec, exec, [[SAVEEXEC_ELSE]] +; GCN: s_or_b64 exec, exec, [[SAVEEXEC_OUTER3]] +; GCN: ds_write_b32 +; GCN: s_endpgm define amdgpu_kernel void @nested_if_else_if(i32 addrspace(1)* nocapture %arg) { bb: %tmp = tail call i32 @llvm.amdgcn.workitem.id.x() @@ -191,7 +186,7 @@ ret void } -; ALL-LABEL: {{^}}s_endpgm_unsafe_barrier: +; GCN-LABEL: {{^}}s_endpgm_unsafe_barrier: ; GCN: s_and_saveexec_b64 [[SAVEEXEC:s\[[0-9:]+\]]] ; GCN-NEXT: s_cbranch_execz [[ENDIF:BB[0-9_]+]] ; GCN-NEXT: ; %bb.{{[0-9]+}}: @@ -216,10 +211,12 @@ ret void } -; Make sure scc liveness is updated if sor_b64 is removed -; ALL-LABEL: {{^}}scc_liveness: +; GCN-LABEL: {{^}}scc_liveness: -; GCN: %bb10 +; GCN: [[BB1_OUTER_LOOP:BB[0-9]+_[0-9]+]]: +; GCN: s_or_b64 exec, exec, [[SAVEEXEC_OUTER:s\[[0-9:]+\]]] +; +; GCN: [[BB1_INNER_LOOP:BB[0-9]+_[0-9]+]]: ; GCN: s_or_b64 exec, exec, s{{\[[0-9]+:[0-9]+\]}} ; GCN: s_andn2_b64 ; GCN-NEXT: s_cbranch_execz @@ -228,8 +225,10 @@ ; GCN: s_andn2_b64 exec, exec, ; GCN-NEXT: s_cbranch_execnz [[BB1_LOOP]] -; GCN: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}, s{{[0-9]+}} offen -; GCN: s_and_b64 exec, exec, {{vcc|s\[[0-9:]+\]}} +; GCN: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}, 0 offen + +; GCN: s_and_saveexec_b64 [[SAVEEXEC_OUTER]], {{vcc|s\[[0-9:]+\]}} +; GCN-NEXT: s_cbranch_execz [[BB1_OUTER_LOOP]] ; GCN-NOT: s_or_b64 exec, exec