Skip to content

Commit 475de1d

Browse files
committed
[GlobalISel][AMDGPU] Update tests
Change-Id: I28f0273da90b5caa9133762ab272ede95a7dd82e
1 parent 4027444 commit 475de1d

File tree

6 files changed

+351
-368
lines changed

6 files changed

+351
-368
lines changed

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

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,140 @@ define amdgpu_kernel void @s_and_u64_sext_with_sregs(ptr addrspace(1) %out, ptr
834834
store i64 %and, ptr addrspace(1) %out, align 8
835835
ret void
836836
}
837+
838+
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]
890+
;
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]
903+
%and = and <2 x i128> %a, %b
904+
ret <2 x i128> %and
905+
}
906+
907+
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]
946+
;
947+
; GFX10-LABEL: v_and_v2i128_inline_imm:
948+
; GFX10: ; %bb.0:
949+
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
950+
; GFX10-NEXT: v_and_b32_e32 v0, 64, v0
951+
; GFX10-NEXT: v_and_b32_e32 v4, 64, v4
952+
; GFX10-NEXT: v_mov_b32_e32 v1, 0
953+
; GFX10-NEXT: v_mov_b32_e32 v2, 0
954+
; GFX10-NEXT: v_mov_b32_e32 v3, 0
955+
; GFX10-NEXT: v_mov_b32_e32 v5, 0
956+
; GFX10-NEXT: v_mov_b32_e32 v6, 0
957+
; GFX10-NEXT: v_mov_b32_e32 v7, 0
958+
; GFX10-NEXT: s_setpc_b64 s[30:31]
959+
;
960+
; GFX11-LABEL: v_and_v2i128_inline_imm:
961+
; GFX11: ; %bb.0:
962+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
963+
; GFX11-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_and_b32 v0, 64, v0
964+
; GFX11-NEXT: v_dual_mov_b32 v3, 0 :: v_dual_and_b32 v4, 64, v4
965+
; GFX11-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v5, 0
966+
; GFX11-NEXT: v_dual_mov_b32 v6, 0 :: v_dual_mov_b32 v7, 0
967+
; GFX11-NEXT: s_setpc_b64 s[30:31]
968+
%and = and <2 x i128> %a, <i128 64, i128 64>
969+
ret <2 x i128> %and
970+
}
837971
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
838972
; GFX11-FAKE16: {{.*}}
839973
; GFX11-TRUE16: {{.*}}

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

Lines changed: 0 additions & 140 deletions
This file was deleted.

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

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -838,6 +838,114 @@ define amdgpu_kernel void @s_or_u64_sext_with_sregs(ptr addrspace(1) %out, ptr a
838838
store i64 %or, ptr addrspace(1) %out, align 8
839839
ret void
840840
}
841+
842+
define <2 x i128> @v_or_v2i128(<2 x i128> %a, <2 x i128> %b) {
843+
; GFX7-LABEL: v_or_v2i128:
844+
; GFX7: ; %bb.0:
845+
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
846+
; GFX7-NEXT: v_or_b32_e32 v0, v0, v8
847+
; GFX7-NEXT: v_or_b32_e32 v1, v1, v9
848+
; GFX7-NEXT: v_or_b32_e32 v2, v2, v10
849+
; GFX7-NEXT: v_or_b32_e32 v3, v3, v11
850+
; GFX7-NEXT: v_or_b32_e32 v4, v4, v12
851+
; GFX7-NEXT: v_or_b32_e32 v5, v5, v13
852+
; GFX7-NEXT: v_or_b32_e32 v6, v6, v14
853+
; GFX7-NEXT: v_or_b32_e32 v7, v7, v15
854+
; GFX7-NEXT: s_setpc_b64 s[30:31]
855+
;
856+
; GFX9-LABEL: v_or_v2i128:
857+
; GFX9: ; %bb.0:
858+
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
859+
; GFX9-NEXT: v_or_b32_e32 v0, v0, v8
860+
; GFX9-NEXT: v_or_b32_e32 v1, v1, v9
861+
; GFX9-NEXT: v_or_b32_e32 v2, v2, v10
862+
; GFX9-NEXT: v_or_b32_e32 v3, v3, v11
863+
; GFX9-NEXT: v_or_b32_e32 v4, v4, v12
864+
; GFX9-NEXT: v_or_b32_e32 v5, v5, v13
865+
; GFX9-NEXT: v_or_b32_e32 v6, v6, v14
866+
; GFX9-NEXT: v_or_b32_e32 v7, v7, v15
867+
; GFX9-NEXT: s_setpc_b64 s[30:31]
868+
;
869+
; GFX8-LABEL: v_or_v2i128:
870+
; GFX8: ; %bb.0:
871+
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
872+
; GFX8-NEXT: v_or_b32_e32 v0, v0, v8
873+
; GFX8-NEXT: v_or_b32_e32 v1, v1, v9
874+
; GFX8-NEXT: v_or_b32_e32 v2, v2, v10
875+
; GFX8-NEXT: v_or_b32_e32 v3, v3, v11
876+
; GFX8-NEXT: v_or_b32_e32 v4, v4, v12
877+
; GFX8-NEXT: v_or_b32_e32 v5, v5, v13
878+
; GFX8-NEXT: v_or_b32_e32 v6, v6, v14
879+
; GFX8-NEXT: v_or_b32_e32 v7, v7, v15
880+
; GFX8-NEXT: s_setpc_b64 s[30:31]
881+
;
882+
; GFX10-LABEL: v_or_v2i128:
883+
; GFX10: ; %bb.0:
884+
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
885+
; GFX10-NEXT: v_or_b32_e32 v0, v0, v8
886+
; GFX10-NEXT: v_or_b32_e32 v1, v1, v9
887+
; GFX10-NEXT: v_or_b32_e32 v2, v2, v10
888+
; GFX10-NEXT: v_or_b32_e32 v3, v3, v11
889+
; GFX10-NEXT: v_or_b32_e32 v4, v4, v12
890+
; GFX10-NEXT: v_or_b32_e32 v5, v5, v13
891+
; GFX10-NEXT: v_or_b32_e32 v6, v6, v14
892+
; GFX10-NEXT: v_or_b32_e32 v7, v7, v15
893+
; GFX10-NEXT: s_setpc_b64 s[30:31]
894+
;
895+
; GFX11-LABEL: v_or_v2i128:
896+
; GFX11: ; %bb.0:
897+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
898+
; GFX11-NEXT: v_or_b32_e32 v0, v0, v8
899+
; GFX11-NEXT: v_or_b32_e32 v1, v1, v9
900+
; GFX11-NEXT: v_or_b32_e32 v2, v2, v10
901+
; GFX11-NEXT: v_or_b32_e32 v3, v3, v11
902+
; GFX11-NEXT: v_or_b32_e32 v4, v4, v12
903+
; GFX11-NEXT: v_or_b32_e32 v5, v5, v13
904+
; GFX11-NEXT: v_or_b32_e32 v6, v6, v14
905+
; GFX11-NEXT: v_or_b32_e32 v7, v7, v15
906+
; GFX11-NEXT: s_setpc_b64 s[30:31]
907+
%or = or <2 x i128> %a, %b
908+
ret <2 x i128> %or
909+
}
910+
911+
define <2 x i128> @v_or_v2i128_inline_imm(<2 x i128> %a) {
912+
; GFX7-LABEL: v_or_v2i128_inline_imm:
913+
; GFX7: ; %bb.0:
914+
; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
915+
; GFX7-NEXT: v_or_b32_e32 v0, 64, v0
916+
; GFX7-NEXT: v_or_b32_e32 v4, 64, v4
917+
; GFX7-NEXT: s_setpc_b64 s[30:31]
918+
;
919+
; GFX9-LABEL: v_or_v2i128_inline_imm:
920+
; GFX9: ; %bb.0:
921+
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
922+
; GFX9-NEXT: v_or_b32_e32 v0, 64, v0
923+
; GFX9-NEXT: v_or_b32_e32 v4, 64, v4
924+
; GFX9-NEXT: s_setpc_b64 s[30:31]
925+
;
926+
; GFX8-LABEL: v_or_v2i128_inline_imm:
927+
; GFX8: ; %bb.0:
928+
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
929+
; GFX8-NEXT: v_or_b32_e32 v0, 64, v0
930+
; GFX8-NEXT: v_or_b32_e32 v4, 64, v4
931+
; GFX8-NEXT: s_setpc_b64 s[30:31]
932+
;
933+
; GFX10-LABEL: v_or_v2i128_inline_imm:
934+
; GFX10: ; %bb.0:
935+
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
936+
; GFX10-NEXT: v_or_b32_e32 v0, 64, v0
937+
; GFX10-NEXT: v_or_b32_e32 v4, 64, v4
938+
; GFX10-NEXT: s_setpc_b64 s[30:31]
939+
;
940+
; GFX11-LABEL: v_or_v2i128_inline_imm:
941+
; GFX11: ; %bb.0:
942+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
943+
; GFX11-NEXT: v_or_b32_e32 v0, 64, v0
944+
; GFX11-NEXT: v_or_b32_e32 v4, 64, v4
945+
; GFX11-NEXT: s_setpc_b64 s[30:31]
946+
%or = or <2 x i128> %a, <i128 64, i128 64>
947+
ret <2 x i128> %or
948+
}
841949
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
842950
; GFX11-FAKE16: {{.*}}
843951
; GFX11-TRUE16: {{.*}}

0 commit comments

Comments
 (0)