108 lines · plain
1# RUN: llc -mtriple=amdgcn-- -run-pass=print-machine-uniformity -o - %s 2>&1 | FileCheck %s2# RUN: llc -mtriple=amdgcn-- -passes='print<machine-uniformity>' -filetype=null %s 2>&1 | FileCheck %s3 4---5name: loads6tracksRegLiveness: true7body: |8 bb.1.entry:9 %1:_(p0) = G_IMPLICIT_DEF10 %4:_(p1) = G_IMPLICIT_DEF11 %6:_(p5) = G_IMPLICIT_DEF12 13 ; Atomic load14 ; CHECK: DIVERGENT15 ; CHECK-SAME: G_LOAD16 %0:_(s32) = G_LOAD %1(p0) :: (load seq_cst (s32) from `ptr undef`)17 18 ; flat load19 ; CHECK: DIVERGENT20 ; CHECK-SAME: G_LOAD21 %2:_(s32) = G_LOAD %1(p0) :: (load (s32) from `ptr undef`)22 23 ; Gloabal load24 ; CHECK-NOT: DIVERGENT25 %3:_(s32) = G_LOAD %4(p1) :: (load (s32) from `ptr addrspace(1) undef`, addrspace 1)26 27 ; Private load28 ; CHECK: DIVERGENT29 ; CHECK-SAME: G_LOAD30 %5:_(s32) = G_LOAD %6(p5) :: (volatile load (s32) from `ptr addrspace(5) undef`, addrspace 5)31 G_STORE %2(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)32 G_STORE %3(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)33 G_STORE %5(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)34 G_STORE %0(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)35 SI_RETURN36 37...38 39---40name: zext_loads41tracksRegLiveness: true42body: |43 bb.1.entry:44 %1:_(p0) = G_IMPLICIT_DEF45 %4:_(p1) = G_IMPLICIT_DEF46 %6:_(p5) = G_IMPLICIT_DEF47 48 ; Atomic load49 ; CHECK: DIVERGENT50 ; CHECK-SAME: G_ZEXTLOAD51 %0:_(s32) = G_ZEXTLOAD %1(p0) :: (load seq_cst (s16) from `ptr undef`)52 53 ; flat load54 ; CHECK: DIVERGENT55 ; CHECK-SAME: G_ZEXTLOAD56 %2:_(s32) = G_ZEXTLOAD %1(p0) :: (load (s16) from `ptr undef`)57 58 ; Gloabal load59 ; CHECK-NOT: DIVERGENT60 %3:_(s32) = G_ZEXTLOAD %4(p1) :: (load (s16) from `ptr addrspace(1) undef`, addrspace 1)61 62 ; Private load63 ; CHECK: DIVERGENT64 ; CHECK-SAME: G_ZEXTLOAD65 %5:_(s32) = G_ZEXTLOAD %6(p5) :: (volatile load (s16) from `ptr addrspace(5) undef`, addrspace 5)66 G_STORE %2(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)67 G_STORE %3(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)68 G_STORE %5(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)69 G_STORE %0(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)70 SI_RETURN71 72...73 74---75name: sext_loads76tracksRegLiveness: true77body: |78 bb.1.entry:79 %1:_(p0) = G_IMPLICIT_DEF80 %4:_(p1) = G_IMPLICIT_DEF81 %6:_(p5) = G_IMPLICIT_DEF82 83 ; Atomic load84 ; CHECK: DIVERGENT85 ; CHECK-SAME: G_SEXTLOAD86 %0:_(s32) = G_SEXTLOAD %1(p0) :: (load seq_cst (s16) from `ptr undef`)87 88 ; flat load89 ; CHECK: DIVERGENT90 ; CHECK-SAME: G_SEXTLOAD91 %2:_(s32) = G_SEXTLOAD %1(p0) :: (load (s16) from `ptr undef`)92 93 ; Gloabal load94 ; CHECK-NOT: DIVERGENT95 %3:_(s32) = G_SEXTLOAD %4(p1) :: (load (s16) from `ptr addrspace(1) undef`, addrspace 1)96 97 ; Private load98 ; CHECK: DIVERGENT99 ; CHECK-SAME: G_SEXTLOAD100 %5:_(s32) = G_SEXTLOAD %6(p5) :: (volatile load (s16) from `ptr addrspace(5) undef`, addrspace 5)101 G_STORE %2(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)102 G_STORE %3(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)103 G_STORE %5(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)104 G_STORE %0(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)105 SI_RETURN106 107...108