Skip to content

Commit 73137e3

Browse files
committed
[GlobalISel][AMDGPU] Update tests
Change-Id: I25afdc40b28be4201473923ff527062e9c76f19f
1 parent 475de1d commit 73137e3

File tree

3 files changed

+764
-279
lines changed

3 files changed

+764
-279
lines changed

llvm/test/CodeGen/AMDGPU/GlobalISel/and.ll

Lines changed: 261 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -836,113 +836,65 @@ define amdgpu_kernel void @s_and_u64_sext_with_sregs(ptr addrspace(1) %out, ptr
836836
}
837837

838838
define <2 x i128> @v_and_v2i128(<2 x i128> %a, <2 x i128> %b) {
839-
; GFX7-LABEL: v_and_v2i128:
840-
; GFX7: ; %bb.0:
841-
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
842-
; GFX7-NEXT: v_and_b32_e32 v0, v0, v8
843-
; GFX7-NEXT: v_and_b32_e32 v1, v1, v9
844-
; GFX7-NEXT: v_and_b32_e32 v2, v2, v10
845-
; GFX7-NEXT: v_and_b32_e32 v3, v3, v11
846-
; GFX7-NEXT: v_and_b32_e32 v4, v4, v12
847-
; GFX7-NEXT: v_and_b32_e32 v5, v5, v13
848-
; GFX7-NEXT: v_and_b32_e32 v6, v6, v14
849-
; GFX7-NEXT: v_and_b32_e32 v7, v7, v15
850-
; GFX7-NEXT: s_setpc_b64 s[30:31]
851-
;
852-
; GFX9-LABEL: v_and_v2i128:
853-
; GFX9: ; %bb.0:
854-
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
855-
; GFX9-NEXT: v_and_b32_e32 v0, v0, v8
856-
; GFX9-NEXT: v_and_b32_e32 v1, v1, v9
857-
; GFX9-NEXT: v_and_b32_e32 v2, v2, v10
858-
; GFX9-NEXT: v_and_b32_e32 v3, v3, v11
859-
; GFX9-NEXT: v_and_b32_e32 v4, v4, v12
860-
; GFX9-NEXT: v_and_b32_e32 v5, v5, v13
861-
; GFX9-NEXT: v_and_b32_e32 v6, v6, v14
862-
; GFX9-NEXT: v_and_b32_e32 v7, v7, v15
863-
; GFX9-NEXT: s_setpc_b64 s[30:31]
864-
;
865-
; GFX8-LABEL: v_and_v2i128:
866-
; GFX8: ; %bb.0:
867-
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
868-
; GFX8-NEXT: v_and_b32_e32 v0, v0, v8
869-
; GFX8-NEXT: v_and_b32_e32 v1, v1, v9
870-
; GFX8-NEXT: v_and_b32_e32 v2, v2, v10
871-
; GFX8-NEXT: v_and_b32_e32 v3, v3, v11
872-
; GFX8-NEXT: v_and_b32_e32 v4, v4, v12
873-
; GFX8-NEXT: v_and_b32_e32 v5, v5, v13
874-
; GFX8-NEXT: v_and_b32_e32 v6, v6, v14
875-
; GFX8-NEXT: v_and_b32_e32 v7, v7, v15
876-
; GFX8-NEXT: s_setpc_b64 s[30:31]
877-
;
878-
; GFX10-LABEL: v_and_v2i128:
879-
; GFX10: ; %bb.0:
880-
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
881-
; GFX10-NEXT: v_and_b32_e32 v0, v0, v8
882-
; GFX10-NEXT: v_and_b32_e32 v1, v1, v9
883-
; GFX10-NEXT: v_and_b32_e32 v2, v2, v10
884-
; GFX10-NEXT: v_and_b32_e32 v3, v3, v11
885-
; GFX10-NEXT: v_and_b32_e32 v4, v4, v12
886-
; GFX10-NEXT: v_and_b32_e32 v5, v5, v13
887-
; GFX10-NEXT: v_and_b32_e32 v6, v6, v14
888-
; GFX10-NEXT: v_and_b32_e32 v7, v7, v15
889-
; GFX10-NEXT: s_setpc_b64 s[30:31]
839+
; GCN-LABEL: v_and_v2i128:
840+
; GCN: ; %bb.0:
841+
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
842+
; GCN-NEXT: v_and_b32_e32 v0, v0, v8
843+
; GCN-NEXT: v_and_b32_e32 v1, v1, v9
844+
; GCN-NEXT: v_and_b32_e32 v2, v2, v10
845+
; GCN-NEXT: v_and_b32_e32 v3, v3, v11
846+
; GCN-NEXT: v_and_b32_e32 v4, v4, v12
847+
; GCN-NEXT: v_and_b32_e32 v5, v5, v13
848+
; GCN-NEXT: v_and_b32_e32 v6, v6, v14
849+
; GCN-NEXT: v_and_b32_e32 v7, v7, v15
850+
; GCN-NEXT: s_setpc_b64 s[30:31]
890851
;
891-
; GFX11-LABEL: v_and_v2i128:
892-
; GFX11: ; %bb.0:
893-
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
894-
; GFX11-NEXT: v_and_b32_e32 v0, v0, v8
895-
; GFX11-NEXT: v_and_b32_e32 v1, v1, v9
896-
; GFX11-NEXT: v_and_b32_e32 v2, v2, v10
897-
; GFX11-NEXT: v_and_b32_e32 v3, v3, v11
898-
; GFX11-NEXT: v_and_b32_e32 v4, v4, v12
899-
; GFX11-NEXT: v_and_b32_e32 v5, v5, v13
900-
; GFX11-NEXT: v_and_b32_e32 v6, v6, v14
901-
; GFX11-NEXT: v_and_b32_e32 v7, v7, v15
902-
; GFX11-NEXT: s_setpc_b64 s[30:31]
852+
; GFX10PLUS-LABEL: v_and_v2i128:
853+
; GFX10PLUS: ; %bb.0:
854+
; GFX10PLUS-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
855+
; GFX10PLUS-NEXT: v_and_b32_e32 v0, v0, v8
856+
; GFX10PLUS-NEXT: v_and_b32_e32 v1, v1, v9
857+
; GFX10PLUS-NEXT: v_and_b32_e32 v2, v2, v10
858+
; GFX10PLUS-NEXT: v_and_b32_e32 v3, v3, v11
859+
; GFX10PLUS-NEXT: v_and_b32_e32 v4, v4, v12
860+
; GFX10PLUS-NEXT: v_and_b32_e32 v5, v5, v13
861+
; GFX10PLUS-NEXT: v_and_b32_e32 v6, v6, v14
862+
; GFX10PLUS-NEXT: v_and_b32_e32 v7, v7, v15
863+
; GFX10PLUS-NEXT: s_setpc_b64 s[30:31]
864+
;
865+
; GFX12-LABEL: v_and_v2i128:
866+
; GFX12: ; %bb.0:
867+
; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
868+
; GFX12-NEXT: s_wait_expcnt 0x0
869+
; GFX12-NEXT: s_wait_samplecnt 0x0
870+
; GFX12-NEXT: s_wait_bvhcnt 0x0
871+
; GFX12-NEXT: s_wait_kmcnt 0x0
872+
; GFX12-NEXT: v_and_b32_e32 v0, v0, v8
873+
; GFX12-NEXT: v_and_b32_e32 v1, v1, v9
874+
; GFX12-NEXT: v_and_b32_e32 v2, v2, v10
875+
; GFX12-NEXT: v_and_b32_e32 v3, v3, v11
876+
; GFX12-NEXT: v_and_b32_e32 v4, v4, v12
877+
; GFX12-NEXT: v_and_b32_e32 v5, v5, v13
878+
; GFX12-NEXT: v_and_b32_e32 v6, v6, v14
879+
; GFX12-NEXT: v_and_b32_e32 v7, v7, v15
880+
; GFX12-NEXT: s_setpc_b64 s[30:31]
903881
%and = and <2 x i128> %a, %b
904882
ret <2 x i128> %and
905883
}
906884

907885
define <2 x i128> @v_and_v2i128_inline_imm(<2 x i128> %a) {
908-
; GFX7-LABEL: v_and_v2i128_inline_imm:
909-
; GFX7: ; %bb.0:
910-
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
911-
; GFX7-NEXT: v_and_b32_e32 v0, 64, v0
912-
; GFX7-NEXT: v_and_b32_e32 v4, 64, v4
913-
; GFX7-NEXT: v_mov_b32_e32 v1, 0
914-
; GFX7-NEXT: v_mov_b32_e32 v2, 0
915-
; GFX7-NEXT: v_mov_b32_e32 v3, 0
916-
; GFX7-NEXT: v_mov_b32_e32 v5, 0
917-
; GFX7-NEXT: v_mov_b32_e32 v6, 0
918-
; GFX7-NEXT: v_mov_b32_e32 v7, 0
919-
; GFX7-NEXT: s_setpc_b64 s[30:31]
920-
;
921-
; GFX9-LABEL: v_and_v2i128_inline_imm:
922-
; GFX9: ; %bb.0:
923-
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
924-
; GFX9-NEXT: v_and_b32_e32 v0, 64, v0
925-
; GFX9-NEXT: v_and_b32_e32 v4, 64, v4
926-
; GFX9-NEXT: v_mov_b32_e32 v1, 0
927-
; GFX9-NEXT: v_mov_b32_e32 v2, 0
928-
; GFX9-NEXT: v_mov_b32_e32 v3, 0
929-
; GFX9-NEXT: v_mov_b32_e32 v5, 0
930-
; GFX9-NEXT: v_mov_b32_e32 v6, 0
931-
; GFX9-NEXT: v_mov_b32_e32 v7, 0
932-
; GFX9-NEXT: s_setpc_b64 s[30:31]
933-
;
934-
; GFX8-LABEL: v_and_v2i128_inline_imm:
935-
; GFX8: ; %bb.0:
936-
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
937-
; GFX8-NEXT: v_and_b32_e32 v0, 64, v0
938-
; GFX8-NEXT: v_and_b32_e32 v4, 64, v4
939-
; GFX8-NEXT: v_mov_b32_e32 v1, 0
940-
; GFX8-NEXT: v_mov_b32_e32 v2, 0
941-
; GFX8-NEXT: v_mov_b32_e32 v3, 0
942-
; GFX8-NEXT: v_mov_b32_e32 v5, 0
943-
; GFX8-NEXT: v_mov_b32_e32 v6, 0
944-
; GFX8-NEXT: v_mov_b32_e32 v7, 0
945-
; GFX8-NEXT: s_setpc_b64 s[30:31]
886+
; GCN-LABEL: v_and_v2i128_inline_imm:
887+
; GCN: ; %bb.0:
888+
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
889+
; GCN-NEXT: v_and_b32_e32 v0, 64, v0
890+
; GCN-NEXT: v_and_b32_e32 v4, 64, v4
891+
; GCN-NEXT: v_mov_b32_e32 v1, 0
892+
; GCN-NEXT: v_mov_b32_e32 v2, 0
893+
; GCN-NEXT: v_mov_b32_e32 v3, 0
894+
; GCN-NEXT: v_mov_b32_e32 v5, 0
895+
; GCN-NEXT: v_mov_b32_e32 v6, 0
896+
; GCN-NEXT: v_mov_b32_e32 v7, 0
897+
; GCN-NEXT: s_setpc_b64 s[30:31]
946898
;
947899
; GFX10-LABEL: v_and_v2i128_inline_imm:
948900
; GFX10: ; %bb.0:
@@ -965,9 +917,217 @@ define <2 x i128> @v_and_v2i128_inline_imm(<2 x i128> %a) {
965917
; GFX11-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v5, 0
966918
; GFX11-NEXT: v_dual_mov_b32 v6, 0 :: v_dual_mov_b32 v7, 0
967919
; GFX11-NEXT: s_setpc_b64 s[30:31]
920+
;
921+
; GFX12-LABEL: v_and_v2i128_inline_imm:
922+
; GFX12: ; %bb.0:
923+
; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
924+
; GFX12-NEXT: s_wait_expcnt 0x0
925+
; GFX12-NEXT: s_wait_samplecnt 0x0
926+
; GFX12-NEXT: s_wait_bvhcnt 0x0
927+
; GFX12-NEXT: s_wait_kmcnt 0x0
928+
; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_and_b32 v0, 64, v0
929+
; GFX12-NEXT: v_dual_mov_b32 v3, 0 :: v_dual_and_b32 v4, 64, v4
930+
; GFX12-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v5, 0
931+
; GFX12-NEXT: v_dual_mov_b32 v6, 0 :: v_dual_mov_b32 v7, 0
932+
; GFX12-NEXT: s_setpc_b64 s[30:31]
968933
%and = and <2 x i128> %a, <i128 64, i128 64>
969934
ret <2 x i128> %and
970935
}
936+
937+
define <3 x i128> @v_and_v3i128(<3 x i128> %a, <3 x i128> %b) {
938+
; GCN-LABEL: v_and_v3i128:
939+
; GCN: ; %bb.0:
940+
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
941+
; GCN-NEXT: v_and_b32_e32 v0, v0, v12
942+
; GCN-NEXT: v_and_b32_e32 v1, v1, v13
943+
; GCN-NEXT: v_and_b32_e32 v2, v2, v14
944+
; GCN-NEXT: v_and_b32_e32 v3, v3, v15
945+
; GCN-NEXT: v_and_b32_e32 v4, v4, v16
946+
; GCN-NEXT: v_and_b32_e32 v5, v5, v17
947+
; GCN-NEXT: v_and_b32_e32 v6, v6, v18
948+
; GCN-NEXT: v_and_b32_e32 v7, v7, v19
949+
; GCN-NEXT: v_and_b32_e32 v8, v8, v20
950+
; GCN-NEXT: v_and_b32_e32 v9, v9, v21
951+
; GCN-NEXT: v_and_b32_e32 v10, v10, v22
952+
; GCN-NEXT: v_and_b32_e32 v11, v11, v23
953+
; GCN-NEXT: s_setpc_b64 s[30:31]
954+
;
955+
; GFX10PLUS-LABEL: v_and_v3i128:
956+
; GFX10PLUS: ; %bb.0:
957+
; GFX10PLUS-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
958+
; GFX10PLUS-NEXT: v_and_b32_e32 v0, v0, v12
959+
; GFX10PLUS-NEXT: v_and_b32_e32 v1, v1, v13
960+
; GFX10PLUS-NEXT: v_and_b32_e32 v2, v2, v14
961+
; GFX10PLUS-NEXT: v_and_b32_e32 v3, v3, v15
962+
; GFX10PLUS-NEXT: v_and_b32_e32 v4, v4, v16
963+
; GFX10PLUS-NEXT: v_and_b32_e32 v5, v5, v17
964+
; GFX10PLUS-NEXT: v_and_b32_e32 v6, v6, v18
965+
; GFX10PLUS-NEXT: v_and_b32_e32 v7, v7, v19
966+
; GFX10PLUS-NEXT: v_and_b32_e32 v8, v8, v20
967+
; GFX10PLUS-NEXT: v_and_b32_e32 v9, v9, v21
968+
; GFX10PLUS-NEXT: v_and_b32_e32 v10, v10, v22
969+
; GFX10PLUS-NEXT: v_and_b32_e32 v11, v11, v23
970+
; GFX10PLUS-NEXT: s_setpc_b64 s[30:31]
971+
;
972+
; GFX12-LABEL: v_and_v3i128:
973+
; GFX12: ; %bb.0:
974+
; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
975+
; GFX12-NEXT: s_wait_expcnt 0x0
976+
; GFX12-NEXT: s_wait_samplecnt 0x0
977+
; GFX12-NEXT: s_wait_bvhcnt 0x0
978+
; GFX12-NEXT: s_wait_kmcnt 0x0
979+
; GFX12-NEXT: v_and_b32_e32 v0, v0, v12
980+
; GFX12-NEXT: v_and_b32_e32 v1, v1, v13
981+
; GFX12-NEXT: v_and_b32_e32 v2, v2, v14
982+
; GFX12-NEXT: v_and_b32_e32 v3, v3, v15
983+
; GFX12-NEXT: v_and_b32_e32 v4, v4, v16
984+
; GFX12-NEXT: v_and_b32_e32 v5, v5, v17
985+
; GFX12-NEXT: v_and_b32_e32 v6, v6, v18
986+
; GFX12-NEXT: v_and_b32_e32 v7, v7, v19
987+
; GFX12-NEXT: v_and_b32_e32 v8, v8, v20
988+
; GFX12-NEXT: v_and_b32_e32 v9, v9, v21
989+
; GFX12-NEXT: v_and_b32_e32 v10, v10, v22
990+
; GFX12-NEXT: v_and_b32_e32 v11, v11, v23
991+
; GFX12-NEXT: s_setpc_b64 s[30:31]
992+
%and = and <3 x i128> %a, %b
993+
ret <3 x i128> %and
994+
}
995+
996+
define <1 x i128> @v_and_v1i128(<1 x i128> %a, <1 x i128> %b) {
997+
; GCN-LABEL: v_and_v1i128:
998+
; GCN: ; %bb.0:
999+
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1000+
; GCN-NEXT: v_and_b32_e32 v0, v0, v4
1001+
; GCN-NEXT: v_and_b32_e32 v1, v1, v5
1002+
; GCN-NEXT: v_and_b32_e32 v2, v2, v6
1003+
; GCN-NEXT: v_and_b32_e32 v3, v3, v7
1004+
; GCN-NEXT: s_setpc_b64 s[30:31]
1005+
;
1006+
; GFX10PLUS-LABEL: v_and_v1i128:
1007+
; GFX10PLUS: ; %bb.0:
1008+
; GFX10PLUS-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1009+
; GFX10PLUS-NEXT: v_and_b32_e32 v0, v0, v4
1010+
; GFX10PLUS-NEXT: v_and_b32_e32 v1, v1, v5
1011+
; GFX10PLUS-NEXT: v_and_b32_e32 v2, v2, v6
1012+
; GFX10PLUS-NEXT: v_and_b32_e32 v3, v3, v7
1013+
; GFX10PLUS-NEXT: s_setpc_b64 s[30:31]
1014+
;
1015+
; GFX12-LABEL: v_and_v1i128:
1016+
; GFX12: ; %bb.0:
1017+
; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
1018+
; GFX12-NEXT: s_wait_expcnt 0x0
1019+
; GFX12-NEXT: s_wait_samplecnt 0x0
1020+
; GFX12-NEXT: s_wait_bvhcnt 0x0
1021+
; GFX12-NEXT: s_wait_kmcnt 0x0
1022+
; GFX12-NEXT: v_and_b32_e32 v0, v0, v4
1023+
; GFX12-NEXT: v_and_b32_e32 v1, v1, v5
1024+
; GFX12-NEXT: v_and_b32_e32 v2, v2, v6
1025+
; GFX12-NEXT: v_and_b32_e32 v3, v3, v7
1026+
; GFX12-NEXT: s_setpc_b64 s[30:31]
1027+
%and = and <1 x i128> %a, %b
1028+
ret <1 x i128> %and
1029+
}
1030+
1031+
define <2 x i256> @v_and_v2i256(<2 x i256> %a, <2 x i256> %b) {
1032+
; GCN-LABEL: v_and_v2i256:
1033+
; GCN: ; %bb.0:
1034+
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1035+
; GCN-NEXT: v_and_b32_e32 v0, v0, v16
1036+
; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s32
1037+
; GCN-NEXT: v_and_b32_e32 v1, v1, v17
1038+
; GCN-NEXT: v_and_b32_e32 v2, v2, v18
1039+
; GCN-NEXT: v_and_b32_e32 v3, v3, v19
1040+
; GCN-NEXT: v_and_b32_e32 v4, v4, v20
1041+
; GCN-NEXT: v_and_b32_e32 v5, v5, v21
1042+
; GCN-NEXT: v_and_b32_e32 v6, v6, v22
1043+
; GCN-NEXT: v_and_b32_e32 v7, v7, v23
1044+
; GCN-NEXT: v_and_b32_e32 v8, v8, v24
1045+
; GCN-NEXT: v_and_b32_e32 v9, v9, v25
1046+
; GCN-NEXT: v_and_b32_e32 v10, v10, v26
1047+
; GCN-NEXT: v_and_b32_e32 v11, v11, v27
1048+
; GCN-NEXT: v_and_b32_e32 v12, v12, v28
1049+
; GCN-NEXT: v_and_b32_e32 v13, v13, v29
1050+
; GCN-NEXT: v_and_b32_e32 v14, v14, v30
1051+
; GCN-NEXT: s_waitcnt vmcnt(0)
1052+
; GCN-NEXT: v_and_b32_e32 v15, v15, v16
1053+
; GCN-NEXT: s_setpc_b64 s[30:31]
1054+
;
1055+
; GFX10-LABEL: v_and_v2i256:
1056+
; GFX10: ; %bb.0:
1057+
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1058+
; GFX10-NEXT: buffer_load_dword v31, off, s[0:3], s32
1059+
; GFX10-NEXT: v_and_b32_e32 v0, v0, v16
1060+
; GFX10-NEXT: v_and_b32_e32 v1, v1, v17
1061+
; GFX10-NEXT: v_and_b32_e32 v2, v2, v18
1062+
; GFX10-NEXT: v_and_b32_e32 v3, v3, v19
1063+
; GFX10-NEXT: v_and_b32_e32 v4, v4, v20
1064+
; GFX10-NEXT: v_and_b32_e32 v5, v5, v21
1065+
; GFX10-NEXT: v_and_b32_e32 v6, v6, v22
1066+
; GFX10-NEXT: v_and_b32_e32 v7, v7, v23
1067+
; GFX10-NEXT: v_and_b32_e32 v8, v8, v24
1068+
; GFX10-NEXT: v_and_b32_e32 v9, v9, v25
1069+
; GFX10-NEXT: v_and_b32_e32 v10, v10, v26
1070+
; GFX10-NEXT: v_and_b32_e32 v11, v11, v27
1071+
; GFX10-NEXT: v_and_b32_e32 v12, v12, v28
1072+
; GFX10-NEXT: v_and_b32_e32 v13, v13, v29
1073+
; GFX10-NEXT: v_and_b32_e32 v14, v14, v30
1074+
; GFX10-NEXT: s_waitcnt vmcnt(0)
1075+
; GFX10-NEXT: v_and_b32_e32 v15, v15, v31
1076+
; GFX10-NEXT: s_setpc_b64 s[30:31]
1077+
;
1078+
; GFX11-LABEL: v_and_v2i256:
1079+
; GFX11: ; %bb.0:
1080+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1081+
; GFX11-NEXT: scratch_load_b32 v31, off, s32
1082+
; GFX11-NEXT: v_and_b32_e32 v0, v0, v16
1083+
; GFX11-NEXT: v_and_b32_e32 v1, v1, v17
1084+
; GFX11-NEXT: v_and_b32_e32 v2, v2, v18
1085+
; GFX11-NEXT: v_and_b32_e32 v3, v3, v19
1086+
; GFX11-NEXT: v_and_b32_e32 v4, v4, v20
1087+
; GFX11-NEXT: v_and_b32_e32 v5, v5, v21
1088+
; GFX11-NEXT: v_and_b32_e32 v6, v6, v22
1089+
; GFX11-NEXT: v_and_b32_e32 v7, v7, v23
1090+
; GFX11-NEXT: v_and_b32_e32 v8, v8, v24
1091+
; GFX11-NEXT: v_and_b32_e32 v9, v9, v25
1092+
; GFX11-NEXT: v_and_b32_e32 v10, v10, v26
1093+
; GFX11-NEXT: v_and_b32_e32 v11, v11, v27
1094+
; GFX11-NEXT: v_and_b32_e32 v12, v12, v28
1095+
; GFX11-NEXT: v_and_b32_e32 v13, v13, v29
1096+
; GFX11-NEXT: v_and_b32_e32 v14, v14, v30
1097+
; GFX11-NEXT: s_waitcnt vmcnt(0)
1098+
; GFX11-NEXT: v_and_b32_e32 v15, v15, v31
1099+
; GFX11-NEXT: s_setpc_b64 s[30:31]
1100+
;
1101+
; GFX12-LABEL: v_and_v2i256:
1102+
; GFX12: ; %bb.0:
1103+
; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
1104+
; GFX12-NEXT: s_wait_expcnt 0x0
1105+
; GFX12-NEXT: s_wait_samplecnt 0x0
1106+
; GFX12-NEXT: s_wait_bvhcnt 0x0
1107+
; GFX12-NEXT: s_wait_kmcnt 0x0
1108+
; GFX12-NEXT: scratch_load_b32 v31, off, s32
1109+
; GFX12-NEXT: v_and_b32_e32 v0, v0, v16
1110+
; GFX12-NEXT: v_and_b32_e32 v1, v1, v17
1111+
; GFX12-NEXT: v_and_b32_e32 v2, v2, v18
1112+
; GFX12-NEXT: v_and_b32_e32 v3, v3, v19
1113+
; GFX12-NEXT: v_and_b32_e32 v4, v4, v20
1114+
; GFX12-NEXT: v_and_b32_e32 v5, v5, v21
1115+
; GFX12-NEXT: v_and_b32_e32 v6, v6, v22
1116+
; GFX12-NEXT: v_and_b32_e32 v7, v7, v23
1117+
; GFX12-NEXT: v_and_b32_e32 v8, v8, v24
1118+
; GFX12-NEXT: v_and_b32_e32 v9, v9, v25
1119+
; GFX12-NEXT: v_and_b32_e32 v10, v10, v26
1120+
; GFX12-NEXT: v_and_b32_e32 v11, v11, v27
1121+
; GFX12-NEXT: v_and_b32_e32 v12, v12, v28
1122+
; GFX12-NEXT: v_and_b32_e32 v13, v13, v29
1123+
; GFX12-NEXT: v_and_b32_e32 v14, v14, v30
1124+
; GFX12-NEXT: s_wait_loadcnt 0x0
1125+
; GFX12-NEXT: v_and_b32_e32 v15, v15, v31
1126+
; GFX12-NEXT: s_setpc_b64 s[30:31]
1127+
%and = and <2 x i256> %a, %b
1128+
ret <2 x i256> %and
1129+
}
1130+
9711131
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
9721132
; GFX11-FAKE16: {{.*}}
9731133
; GFX11-TRUE16: {{.*}}

0 commit comments

Comments
 (0)