Skip to content

Commit

Permalink
[msm] use vp
Browse files Browse the repository at this point in the history
  • Loading branch information
herumi committed Nov 5, 2024
1 parent 8e85da9 commit a2df947
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 149 deletions.
215 changes: 85 additions & 130 deletions src/asm/bint-x64-amd64.S
Original file line number Diff line number Diff line change
Expand Up @@ -714,24 +714,6 @@ vmovdqa64 %zmm7, 384(%rdi)
vmovdqa64 %zmm8, 448(%rdi)
vzeroupper
ret
.balign 32
.L2:
vpmadd52luq (%rax), %zmm11, %zmm0
vpmadd52huq (%rax), %zmm11, %zmm1
vpmadd52luq 64(%rax), %zmm11, %zmm1
vpmadd52huq 64(%rax), %zmm11, %zmm2
vpmadd52luq 128(%rax), %zmm11, %zmm2
vpmadd52huq 128(%rax), %zmm11, %zmm3
vpmadd52luq 192(%rax), %zmm11, %zmm3
vpmadd52huq 192(%rax), %zmm11, %zmm4
vpmadd52luq 256(%rax), %zmm11, %zmm4
vpmadd52huq 256(%rax), %zmm11, %zmm5
vpmadd52luq 320(%rax), %zmm11, %zmm5
vpmadd52huq 320(%rax), %zmm11, %zmm6
vpmadd52luq 384(%rax), %zmm11, %zmm6
vpmadd52huq 384(%rax), %zmm11, %zmm7
vpmadd52luq 448(%rax), %zmm11, %zmm7
vpmadd52huq 448(%rax), %zmm11, %zmm8
ret
SIZE(mcl_c5_vmul)
.global PRE(mcl_c5_vaddA)
Expand All @@ -741,7 +723,7 @@ mov $4503599627370495, %rax
vpbroadcastq %rax, %zmm16
lea PRE(p)(%rip), %rax
mov $2, %r10
.L3:
.L2:
vmovdqa64 (%rsi), %zmm0
vpaddq (%rdx), %zmm0, %zmm0
vpsrlq $52, %zmm0, %zmm17
Expand Down Expand Up @@ -824,7 +806,7 @@ add $64, %rsi
add $64, %rdx
add $64, %rdi
sub $1, %r10
jnz .L3
jnz .L2
vzeroupper
ret
SIZE(mcl_c5_vaddA)
Expand Down Expand Up @@ -997,6 +979,15 @@ SIZE(mcl_c5_vsubA)
.global PRE(mcl_c5_vmulA)
PRE(mcl_c5_vmulA):
TYPE(mcl_c5_vmulA)
lea PRE(ap)(%rip), %rax
vmovdqa64 (%rax), %zmm23
vmovdqa64 64(%rax), %zmm24
vmovdqa64 128(%rax), %zmm25
vmovdqa64 192(%rax), %zmm26
vmovdqa64 256(%rax), %zmm27
vmovdqa64 320(%rax), %zmm28
vmovdqa64 384(%rax), %zmm29
vmovdqa64 448(%rax), %zmm30
mov $4503599627370495, %rax
vpbroadcastq %rax, %zmm18
lea PRE(rp)(%rip), %rcx
Expand Down Expand Up @@ -1071,42 +1062,41 @@ vpxorq %zmm21, %zmm21, %zmm21
vpxorq %zmm22, %zmm22, %zmm22
vpmadd52luq (%rcx){1to8}, %zmm0, %zmm21
vpmadd52luq (%rcx){1to8}, %zmm1, %zmm22
lea PRE(apA)(%rip), %rax
vpmadd52luq (%rax), %zmm21, %zmm0
vpmadd52luq 64(%rax), %zmm22, %zmm1
vpmadd52huq (%rax), %zmm21, %zmm2
vpmadd52huq 64(%rax), %zmm22, %zmm3
vpmadd52luq 128(%rax), %zmm21, %zmm2
vpmadd52luq 192(%rax), %zmm22, %zmm3
vpmadd52huq 128(%rax), %zmm21, %zmm4
vpmadd52huq 192(%rax), %zmm22, %zmm5
vpmadd52luq 256(%rax), %zmm21, %zmm4
vpmadd52luq 320(%rax), %zmm22, %zmm5
vpmadd52huq 256(%rax), %zmm21, %zmm6
vpmadd52huq 320(%rax), %zmm22, %zmm7
vpmadd52luq 384(%rax), %zmm21, %zmm6
vpmadd52luq 448(%rax), %zmm22, %zmm7
vpmadd52huq 384(%rax), %zmm21, %zmm8
vpmadd52huq 448(%rax), %zmm22, %zmm9
vpmadd52luq 512(%rax), %zmm21, %zmm8
vpmadd52luq 576(%rax), %zmm22, %zmm9
vpmadd52huq 512(%rax), %zmm21, %zmm10
vpmadd52huq 576(%rax), %zmm22, %zmm11
vpmadd52luq 640(%rax), %zmm21, %zmm10
vpmadd52luq 704(%rax), %zmm22, %zmm11
vpmadd52huq 640(%rax), %zmm21, %zmm12
vpmadd52huq 704(%rax), %zmm22, %zmm13
vpmadd52luq 768(%rax), %zmm21, %zmm12
vpmadd52luq 832(%rax), %zmm22, %zmm13
vpmadd52huq 768(%rax), %zmm21, %zmm14
vpmadd52huq 832(%rax), %zmm22, %zmm15
vpmadd52luq 896(%rax), %zmm21, %zmm14
vpmadd52luq 960(%rax), %zmm22, %zmm15
vpmadd52huq 896(%rax), %zmm21, %zmm16
vpmadd52huq 960(%rax), %zmm22, %zmm17
vpmadd52luq %zmm23, %zmm21, %zmm0
vpmadd52luq %zmm23, %zmm22, %zmm1
vpmadd52huq %zmm23, %zmm21, %zmm2
vpmadd52huq %zmm23, %zmm22, %zmm3
vpmadd52luq %zmm24, %zmm21, %zmm2
vpmadd52luq %zmm24, %zmm22, %zmm3
vpmadd52huq %zmm24, %zmm21, %zmm4
vpmadd52huq %zmm24, %zmm22, %zmm5
vpmadd52luq %zmm25, %zmm21, %zmm4
vpmadd52luq %zmm25, %zmm22, %zmm5
vpmadd52huq %zmm25, %zmm21, %zmm6
vpmadd52huq %zmm25, %zmm22, %zmm7
vpmadd52luq %zmm26, %zmm21, %zmm6
vpmadd52luq %zmm26, %zmm22, %zmm7
vpmadd52huq %zmm26, %zmm21, %zmm8
vpmadd52huq %zmm26, %zmm22, %zmm9
vpmadd52luq %zmm27, %zmm21, %zmm8
vpmadd52luq %zmm27, %zmm22, %zmm9
vpmadd52huq %zmm27, %zmm21, %zmm10
vpmadd52huq %zmm27, %zmm22, %zmm11
vpmadd52luq %zmm28, %zmm21, %zmm10
vpmadd52luq %zmm28, %zmm22, %zmm11
vpmadd52huq %zmm28, %zmm21, %zmm12
vpmadd52huq %zmm28, %zmm22, %zmm13
vpmadd52luq %zmm29, %zmm21, %zmm12
vpmadd52luq %zmm29, %zmm22, %zmm13
vpmadd52huq %zmm29, %zmm21, %zmm14
vpmadd52huq %zmm29, %zmm22, %zmm15
vpmadd52luq %zmm30, %zmm21, %zmm14
vpmadd52luq %zmm30, %zmm22, %zmm15
vpmadd52huq %zmm30, %zmm21, %zmm16
vpmadd52huq %zmm30, %zmm22, %zmm17
mov $7, %r8
.balign 32
.L4:
.L3:
mov %rsi, %rax
vmovdqa64 (%rdx), %zmm21
vmovdqa64 64(%rdx), %zmm22
Expand Down Expand Up @@ -1171,41 +1161,40 @@ vpxorq %zmm21, %zmm21, %zmm21
vpxorq %zmm22, %zmm22, %zmm22
vpmadd52luq (%rcx){1to8}, %zmm0, %zmm21
vpmadd52luq (%rcx){1to8}, %zmm1, %zmm22
lea PRE(apA)(%rip), %rax
vpmadd52luq (%rax), %zmm21, %zmm0
vpmadd52luq 64(%rax), %zmm22, %zmm1
vpmadd52huq (%rax), %zmm21, %zmm2
vpmadd52huq 64(%rax), %zmm22, %zmm3
vpmadd52luq 128(%rax), %zmm21, %zmm2
vpmadd52luq 192(%rax), %zmm22, %zmm3
vpmadd52huq 128(%rax), %zmm21, %zmm4
vpmadd52huq 192(%rax), %zmm22, %zmm5
vpmadd52luq 256(%rax), %zmm21, %zmm4
vpmadd52luq 320(%rax), %zmm22, %zmm5
vpmadd52huq 256(%rax), %zmm21, %zmm6
vpmadd52huq 320(%rax), %zmm22, %zmm7
vpmadd52luq 384(%rax), %zmm21, %zmm6
vpmadd52luq 448(%rax), %zmm22, %zmm7
vpmadd52huq 384(%rax), %zmm21, %zmm8
vpmadd52huq 448(%rax), %zmm22, %zmm9
vpmadd52luq 512(%rax), %zmm21, %zmm8
vpmadd52luq 576(%rax), %zmm22, %zmm9
vpmadd52huq 512(%rax), %zmm21, %zmm10
vpmadd52huq 576(%rax), %zmm22, %zmm11
vpmadd52luq 640(%rax), %zmm21, %zmm10
vpmadd52luq 704(%rax), %zmm22, %zmm11
vpmadd52huq 640(%rax), %zmm21, %zmm12
vpmadd52huq 704(%rax), %zmm22, %zmm13
vpmadd52luq 768(%rax), %zmm21, %zmm12
vpmadd52luq 832(%rax), %zmm22, %zmm13
vpmadd52huq 768(%rax), %zmm21, %zmm14
vpmadd52huq 832(%rax), %zmm22, %zmm15
vpmadd52luq 896(%rax), %zmm21, %zmm14
vpmadd52luq 960(%rax), %zmm22, %zmm15
vpmadd52huq 896(%rax), %zmm21, %zmm16
vpmadd52huq 960(%rax), %zmm22, %zmm17
vpmadd52luq %zmm23, %zmm21, %zmm0
vpmadd52luq %zmm23, %zmm22, %zmm1
vpmadd52huq %zmm23, %zmm21, %zmm2
vpmadd52huq %zmm23, %zmm22, %zmm3
vpmadd52luq %zmm24, %zmm21, %zmm2
vpmadd52luq %zmm24, %zmm22, %zmm3
vpmadd52huq %zmm24, %zmm21, %zmm4
vpmadd52huq %zmm24, %zmm22, %zmm5
vpmadd52luq %zmm25, %zmm21, %zmm4
vpmadd52luq %zmm25, %zmm22, %zmm5
vpmadd52huq %zmm25, %zmm21, %zmm6
vpmadd52huq %zmm25, %zmm22, %zmm7
vpmadd52luq %zmm26, %zmm21, %zmm6
vpmadd52luq %zmm26, %zmm22, %zmm7
vpmadd52huq %zmm26, %zmm21, %zmm8
vpmadd52huq %zmm26, %zmm22, %zmm9
vpmadd52luq %zmm27, %zmm21, %zmm8
vpmadd52luq %zmm27, %zmm22, %zmm9
vpmadd52huq %zmm27, %zmm21, %zmm10
vpmadd52huq %zmm27, %zmm22, %zmm11
vpmadd52luq %zmm28, %zmm21, %zmm10
vpmadd52luq %zmm28, %zmm22, %zmm11
vpmadd52huq %zmm28, %zmm21, %zmm12
vpmadd52huq %zmm28, %zmm22, %zmm13
vpmadd52luq %zmm29, %zmm21, %zmm12
vpmadd52luq %zmm29, %zmm22, %zmm13
vpmadd52huq %zmm29, %zmm21, %zmm14
vpmadd52huq %zmm29, %zmm22, %zmm15
vpmadd52luq %zmm30, %zmm21, %zmm14
vpmadd52luq %zmm30, %zmm22, %zmm15
vpmadd52huq %zmm30, %zmm21, %zmm16
vpmadd52huq %zmm30, %zmm22, %zmm17
dec %r8
jnz .L4
jnz .L3
vpsrlq $52, %zmm0, %zmm21
vpsrlq $52, %zmm1, %zmm22
vpaddq %zmm21, %zmm2, %zmm2
Expand Down Expand Up @@ -1256,27 +1245,27 @@ vpandq %zmm18, %zmm14, %zmm14
vpandq %zmm18, %zmm15, %zmm15
lea PRE(p)(%rip), %rax
vpxorq %zmm19, %zmm19, %zmm19
vpsubq (%rax){1to8}, %zmm2, %zmm23
vpsubq %zmm23, %zmm2, %zmm23
vpsrlq $63, %zmm23, %zmm21
vpsubq 8(%rax){1to8}, %zmm4, %zmm24
vpsubq %zmm24, %zmm4, %zmm24
vpsubq %zmm21, %zmm24, %zmm24
vpsrlq $63, %zmm24, %zmm21
vpsubq 16(%rax){1to8}, %zmm6, %zmm25
vpsubq %zmm25, %zmm6, %zmm25
vpsubq %zmm21, %zmm25, %zmm25
vpsrlq $63, %zmm25, %zmm21
vpsubq 24(%rax){1to8}, %zmm8, %zmm26
vpsubq %zmm26, %zmm8, %zmm26
vpsubq %zmm21, %zmm26, %zmm26
vpsrlq $63, %zmm26, %zmm21
vpsubq 32(%rax){1to8}, %zmm10, %zmm27
vpsubq %zmm27, %zmm10, %zmm27
vpsubq %zmm21, %zmm27, %zmm27
vpsrlq $63, %zmm27, %zmm21
vpsubq 40(%rax){1to8}, %zmm12, %zmm28
vpsubq %zmm28, %zmm12, %zmm28
vpsubq %zmm21, %zmm28, %zmm28
vpsrlq $63, %zmm28, %zmm21
vpsubq 48(%rax){1to8}, %zmm14, %zmm29
vpsubq %zmm29, %zmm14, %zmm29
vpsubq %zmm21, %zmm29, %zmm29
vpsrlq $63, %zmm29, %zmm21
vpsubq 56(%rax){1to8}, %zmm16, %zmm30
vpsubq %zmm30, %zmm16, %zmm30
vpsubq %zmm21, %zmm30, %zmm30
vpsrlq $63, %zmm30, %zmm21
vpcmpeqq %zmm19, %zmm21, %k1
Expand Down Expand Up @@ -1346,40 +1335,6 @@ vmovdqa64 %zmm16, 896(%rdi)
vmovdqa64 %zmm17, 960(%rdi)
vzeroupper
ret
.balign 32
.L5:
vpmadd52luq (%rax), %zmm21, %zmm0
vpmadd52luq 64(%rax), %zmm22, %zmm1
vpmadd52huq (%rax), %zmm21, %zmm2
vpmadd52huq 64(%rax), %zmm22, %zmm3
vpmadd52luq 128(%rax), %zmm21, %zmm2
vpmadd52luq 192(%rax), %zmm22, %zmm3
vpmadd52huq 128(%rax), %zmm21, %zmm4
vpmadd52huq 192(%rax), %zmm22, %zmm5
vpmadd52luq 256(%rax), %zmm21, %zmm4
vpmadd52luq 320(%rax), %zmm22, %zmm5
vpmadd52huq 256(%rax), %zmm21, %zmm6
vpmadd52huq 320(%rax), %zmm22, %zmm7
vpmadd52luq 384(%rax), %zmm21, %zmm6
vpmadd52luq 448(%rax), %zmm22, %zmm7
vpmadd52huq 384(%rax), %zmm21, %zmm8
vpmadd52huq 448(%rax), %zmm22, %zmm9
vpmadd52luq 512(%rax), %zmm21, %zmm8
vpmadd52luq 576(%rax), %zmm22, %zmm9
vpmadd52huq 512(%rax), %zmm21, %zmm10
vpmadd52huq 576(%rax), %zmm22, %zmm11
vpmadd52luq 640(%rax), %zmm21, %zmm10
vpmadd52luq 704(%rax), %zmm22, %zmm11
vpmadd52huq 640(%rax), %zmm21, %zmm12
vpmadd52huq 704(%rax), %zmm22, %zmm13
vpmadd52luq 768(%rax), %zmm21, %zmm12
vpmadd52luq 832(%rax), %zmm22, %zmm13
vpmadd52huq 768(%rax), %zmm21, %zmm14
vpmadd52huq 832(%rax), %zmm22, %zmm15
vpmadd52luq 896(%rax), %zmm21, %zmm14
vpmadd52luq 960(%rax), %zmm22, %zmm15
vpmadd52huq 896(%rax), %zmm21, %zmm16
vpmadd52huq 960(%rax), %zmm22, %zmm17
ret
SIZE(mcl_c5_vmulA)
.balign 16
Expand Down
Loading

0 comments on commit a2df947

Please sign in to comment.