@@ -866,90 +866,5 @@ bb.3:
866
866
ret void
867
867
}
868
868
869
- ; This should not cause Assertion `getType() == V->getType() && "All operands to PHI node must be the same type as the PHI node
870
- ; Note: whether or not the assertion fires depends on the iteration ortder of PhiNodes in AMDGPULateCodeGenPrepare, which
871
- ; is non-deterministic due to iterators over a set of pointers.
872
-
873
-
874
- define amdgpu_kernel void @MissingInc_PhiChain (i1 %cmp , <16 x i8 > %input ) {
875
- ; GFX906-LABEL: MissingInc_PhiChain:
876
- ; GFX906: ; %bb.0: ; %entry
877
- ; GFX906-NEXT: s_load_dword s0, s[2:3], 0x24
878
- ; GFX906-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x34
879
- ; GFX906-NEXT: s_mov_b32 s10, 1
880
- ; GFX906-NEXT: v_mov_b32_e32 v4, 1
881
- ; GFX906-NEXT: s_mov_b32 s11, 1
882
- ; GFX906-NEXT: s_waitcnt lgkmcnt(0)
883
- ; GFX906-NEXT: s_bitcmp1_b32 s0, 0
884
- ; GFX906-NEXT: s_cselect_b64 s[2:3], -1, 0
885
- ; GFX906-NEXT: s_xor_b64 s[0:1], s[2:3], -1
886
- ; GFX906-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1]
887
- ; GFX906-NEXT: v_cmp_ne_u32_e64 s[0:1], 1, v0
888
- ; GFX906-NEXT: s_branch .LBB14_2
889
- ; GFX906-NEXT: .LBB14_1: ; %bb.5
890
- ; GFX906-NEXT: ; in Loop: Header=BB14_2 Depth=1
891
- ; GFX906-NEXT: v_lshrrev_b32_e32 v4, 8, v0
892
- ; GFX906-NEXT: s_mov_b32 s10, 0
893
- ; GFX906-NEXT: s_mov_b32 s11, 0
894
- ; GFX906-NEXT: .LBB14_2: ; %bb.1
895
- ; GFX906-NEXT: ; =>This Inner Loop Header: Depth=1
896
- ; GFX906-NEXT: s_and_b64 vcc, exec, s[0:1]
897
- ; GFX906-NEXT: s_mov_b64 s[8:9], s[2:3]
898
- ; GFX906-NEXT: ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3
899
- ; GFX906-NEXT: s_cbranch_vccnz .LBB14_4
900
- ; GFX906-NEXT: ; %bb.3: ; %bb.2
901
- ; GFX906-NEXT: ; in Loop: Header=BB14_2 Depth=1
902
- ; GFX906-NEXT: v_lshlrev_b16_e64 v0, 8, s11
903
- ; GFX906-NEXT: v_or_b32_sdwa v0, s10, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD
904
- ; GFX906-NEXT: v_lshlrev_b16_e32 v1, 8, v4
905
- ; GFX906-NEXT: v_or_b32_e32 v0, v1, v0
906
- ; GFX906-NEXT: s_mov_b64 s[8:9], -1
907
- ; GFX906-NEXT: .LBB14_4: ; %Flow
908
- ; GFX906-NEXT: ; in Loop: Header=BB14_2 Depth=1
909
- ; GFX906-NEXT: s_andn2_b64 vcc, exec, s[8:9]
910
- ; GFX906-NEXT: s_cbranch_vccnz .LBB14_7
911
- ; GFX906-NEXT: ; %bb.5: ; %bb.3
912
- ; GFX906-NEXT: ; in Loop: Header=BB14_2 Depth=1
913
- ; GFX906-NEXT: s_and_b64 vcc, exec, s[0:1]
914
- ; GFX906-NEXT: s_cbranch_vccnz .LBB14_1
915
- ; GFX906-NEXT: ; %bb.6: ; %bb.4
916
- ; GFX906-NEXT: ; in Loop: Header=BB14_2 Depth=1
917
- ; GFX906-NEXT: v_mov_b32_e32 v0, s4
918
- ; GFX906-NEXT: v_mov_b32_e32 v1, s5
919
- ; GFX906-NEXT: v_mov_b32_e32 v2, s6
920
- ; GFX906-NEXT: v_mov_b32_e32 v3, s7
921
- ; GFX906-NEXT: s_branch .LBB14_1
922
- ; GFX906-NEXT: .LBB14_7: ; in Loop: Header=BB14_2 Depth=1
923
- ; GFX906-NEXT: ; implicit-def: $vgpr4
924
- ; GFX906-NEXT: ; implicit-def: $sgpr10
925
- ; GFX906-NEXT: ; implicit-def: $sgpr11
926
- ; GFX906-NEXT: s_cbranch_execz .LBB14_2
927
- ; GFX906-NEXT: ; %bb.8: ; %DummyReturnBlock
928
- ; GFX906-NEXT: s_endpgm
929
- entry:
930
- br label %bb.1
931
-
932
- bb.1 : ; preds = %bb.5, %entry
933
- %phi1 = phi <16 x i8 > [ <i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 , i8 1 >, %entry ], [ %shuffle , %bb.5 ]
934
- br i1 %cmp , label %bb.3 , label %bb.2
935
-
936
- bb.2 : ; preds = %bb.1
937
- %insert = insertelement <16 x i8 > %phi1 , i8 0 , i64 0
938
- br label %bb.3
939
-
940
- bb.3 : ; preds = %bb.2, %bb.1
941
- %phi2 = phi <16 x i8 > [ %insert , %bb.2 ], [ %phi1 , %bb.1 ]
942
- br i1 %cmp , label %bb.5 , label %bb.4
943
-
944
- bb.4 : ; preds = %bb.3
945
- br label %bb.5
946
-
947
- bb.5 : ; preds = %bb.4, %bb.3
948
- %phi3 = phi <16 x i8 > [ %input , %bb.4 ], [ %phi2 , %bb.3 ]
949
- %shuffle = shufflevector <16 x i8 > %phi3 , <16 x i8 > zeroinitializer , <16 x i32 > <i32 0 , i32 1 , i32 18 , i32 19 , i32 20 , i32 21 , i32 22 , i32 23 , i32 24 , i32 25 , i32 26 , i32 27 , i32 28 , i32 29 , i32 30 , i32 31 >
950
- br label %bb.1
951
- }
952
-
953
-
954
869
955
870
declare i32 @llvm.amdgcn.workitem.id.x ()
0 commit comments