github.com/apache/arrow/go/v14@v14.0.1/internal/utils/_lib/min_max_avx2_amd64.s (about)

     1  	.text
     2  	.intel_syntax noprefix
     3  	.file	"min_max.c"
     4  	.section	.rodata.cst32,"aM",@progbits,32
     5  	.p2align	5                               # -- Begin function int8_max_min_avx2
     6  .LCPI0_0:
     7  	.zero	32,128
     8  .LCPI0_1:
     9  	.zero	32,127
    10  	.section	.rodata.cst16,"aM",@progbits,16
    11  	.p2align	4
    12  .LCPI0_2:
    13  	.zero	16,127
    14  .LCPI0_3:
    15  	.zero	16,128
    16  	.text
    17  	.globl	int8_max_min_avx2
    18  	.p2align	4, 0x90
    19  	.type	int8_max_min_avx2,@function
    20  int8_max_min_avx2:                      # @int8_max_min_avx2
    21  # %bb.0:
    22  	push	rbp
    23  	mov	rbp, rsp
    24  	and	rsp, -8
    25  	test	esi, esi
    26  	jle	.LBB0_1
    27  # %bb.2:
    28  	mov	r9d, esi
    29  	cmp	esi, 63
    30  	ja	.LBB0_4
    31  # %bb.3:
    32  	mov	r8b, -128
    33  	mov	sil, 127
    34  	xor	r10d, r10d
    35  	jmp	.LBB0_11
    36  .LBB0_1:
    37  	mov	sil, 127
    38  	mov	r8b, -128
    39  	jmp	.LBB0_12
    40  .LBB0_4:
    41  	mov	r10d, r9d
    42  	and	r10d, -64
    43  	lea	rax, [r10 - 64]
    44  	mov	r8, rax
    45  	shr	r8, 6
    46  	add	r8, 1
    47  	test	rax, rax
    48  	je	.LBB0_5
    49  # %bb.6:
    50  	mov	rsi, r8
    51  	and	rsi, -2
    52  	neg	rsi
    53  	vmovdqa	ymm1, ymmword ptr [rip + .LCPI0_0] # ymm1 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128]
    54  	vmovdqa	ymm0, ymmword ptr [rip + .LCPI0_1] # ymm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
    55  	xor	eax, eax
    56  	vmovdqa	ymm2, ymm0
    57  	vmovdqa	ymm3, ymm1
    58  	.p2align	4, 0x90
    59  .LBB0_7:                                # =>This Inner Loop Header: Depth=1
    60  	vmovdqu	ymm4, ymmword ptr [rdi + rax]
    61  	vmovdqu	ymm5, ymmword ptr [rdi + rax + 32]
    62  	vmovdqu	ymm6, ymmword ptr [rdi + rax + 64]
    63  	vmovdqu	ymm7, ymmword ptr [rdi + rax + 96]
    64  	vpminsb	ymm0, ymm0, ymm4
    65  	vpminsb	ymm2, ymm2, ymm5
    66  	vpmaxsb	ymm1, ymm1, ymm4
    67  	vpmaxsb	ymm3, ymm3, ymm5
    68  	vpminsb	ymm0, ymm0, ymm6
    69  	vpminsb	ymm2, ymm2, ymm7
    70  	vpmaxsb	ymm1, ymm1, ymm6
    71  	vpmaxsb	ymm3, ymm3, ymm7
    72  	sub	rax, -128
    73  	add	rsi, 2
    74  	jne	.LBB0_7
    75  # %bb.8:
    76  	test	r8b, 1
    77  	je	.LBB0_10
    78  .LBB0_9:
    79  	vmovdqu	ymm4, ymmword ptr [rdi + rax]
    80  	vmovdqu	ymm5, ymmword ptr [rdi + rax + 32]
    81  	vpmaxsb	ymm3, ymm3, ymm5
    82  	vpmaxsb	ymm1, ymm1, ymm4
    83  	vpminsb	ymm2, ymm2, ymm5
    84  	vpminsb	ymm0, ymm0, ymm4
    85  .LBB0_10:
    86  	vpmaxsb	ymm1, ymm1, ymm3
    87  	vextracti128	xmm3, ymm1, 1
    88  	vpmaxsb	xmm1, xmm1, xmm3
    89  	vpxor	xmm1, xmm1, xmmword ptr [rip + .LCPI0_2]
    90  	vpminsb	ymm0, ymm0, ymm2
    91  	vpsrlw	xmm2, xmm1, 8
    92  	vpminub	xmm1, xmm1, xmm2
    93  	vphminposuw	xmm1, xmm1
    94  	vmovd	r8d, xmm1
    95  	xor	r8b, 127
    96  	vextracti128	xmm1, ymm0, 1
    97  	vpminsb	xmm0, xmm0, xmm1
    98  	vpxor	xmm0, xmm0, xmmword ptr [rip + .LCPI0_3]
    99  	vpsrlw	xmm1, xmm0, 8
   100  	vpminub	xmm0, xmm0, xmm1
   101  	vphminposuw	xmm0, xmm0
   102  	vmovd	esi, xmm0
   103  	xor	sil, -128
   104  	cmp	r10, r9
   105  	je	.LBB0_12
   106  	.p2align	4, 0x90
   107  .LBB0_11:                               # =>This Inner Loop Header: Depth=1
   108  	movzx	eax, byte ptr [rdi + r10]
   109  	cmp	sil, al
   110  	movzx	esi, sil
   111  	cmovg	esi, eax
   112  	cmp	r8b, al
   113  	movzx	r8d, r8b
   114  	cmovl	r8d, eax
   115  	add	r10, 1
   116  	cmp	r9, r10
   117  	jne	.LBB0_11
   118  .LBB0_12:
   119  	mov	byte ptr [rcx], r8b
   120  	mov	byte ptr [rdx], sil
   121  	mov	rsp, rbp
   122  	pop	rbp
   123  	vzeroupper
   124  	ret
   125  .LBB0_5:
   126  	vmovdqa	ymm1, ymmword ptr [rip + .LCPI0_0] # ymm1 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128]
   127  	vmovdqa	ymm0, ymmword ptr [rip + .LCPI0_1] # ymm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
   128  	xor	eax, eax
   129  	vmovdqa	ymm2, ymm0
   130  	vmovdqa	ymm3, ymm1
   131  	test	r8b, 1
   132  	jne	.LBB0_9
   133  	jmp	.LBB0_10
   134  .Lfunc_end0:
   135  	.size	int8_max_min_avx2, .Lfunc_end0-int8_max_min_avx2
   136                                          # -- End function
   137  	.globl	uint8_max_min_avx2              # -- Begin function uint8_max_min_avx2
   138  	.p2align	4, 0x90
   139  	.type	uint8_max_min_avx2,@function
   140  uint8_max_min_avx2:                     # @uint8_max_min_avx2
   141  # %bb.0:
   142  	push	rbp
   143  	mov	rbp, rsp
   144  	and	rsp, -8
   145  	test	esi, esi
   146  	jle	.LBB1_1
   147  # %bb.2:
   148  	mov	r9d, esi
   149  	cmp	esi, 63
   150  	ja	.LBB1_4
   151  # %bb.3:
   152  	mov	sil, -1
   153  	xor	r10d, r10d
   154  	xor	eax, eax
   155  	jmp	.LBB1_11
   156  .LBB1_1:
   157  	mov	sil, -1
   158  	xor	eax, eax
   159  	jmp	.LBB1_12
   160  .LBB1_4:
   161  	mov	r10d, r9d
   162  	and	r10d, -64
   163  	lea	rax, [r10 - 64]
   164  	mov	r8, rax
   165  	shr	r8, 6
   166  	add	r8, 1
   167  	test	rax, rax
   168  	je	.LBB1_5
   169  # %bb.6:
   170  	mov	rsi, r8
   171  	and	rsi, -2
   172  	neg	rsi
   173  	vpxor	xmm0, xmm0, xmm0
   174  	vpcmpeqd	ymm1, ymm1, ymm1
   175  	xor	eax, eax
   176  	vpcmpeqd	ymm2, ymm2, ymm2
   177  	vpxor	xmm3, xmm3, xmm3
   178  	.p2align	4, 0x90
   179  .LBB1_7:                                # =>This Inner Loop Header: Depth=1
   180  	vmovdqu	ymm4, ymmword ptr [rdi + rax]
   181  	vmovdqu	ymm5, ymmword ptr [rdi + rax + 32]
   182  	vmovdqu	ymm6, ymmword ptr [rdi + rax + 64]
   183  	vmovdqu	ymm7, ymmword ptr [rdi + rax + 96]
   184  	vpminub	ymm1, ymm1, ymm4
   185  	vpminub	ymm2, ymm2, ymm5
   186  	vpmaxub	ymm0, ymm0, ymm4
   187  	vpmaxub	ymm3, ymm3, ymm5
   188  	vpminub	ymm1, ymm1, ymm6
   189  	vpminub	ymm2, ymm2, ymm7
   190  	vpmaxub	ymm0, ymm0, ymm6
   191  	vpmaxub	ymm3, ymm3, ymm7
   192  	sub	rax, -128
   193  	add	rsi, 2
   194  	jne	.LBB1_7
   195  # %bb.8:
   196  	test	r8b, 1
   197  	je	.LBB1_10
   198  .LBB1_9:
   199  	vmovdqu	ymm4, ymmword ptr [rdi + rax]
   200  	vmovdqu	ymm5, ymmword ptr [rdi + rax + 32]
   201  	vpmaxub	ymm3, ymm3, ymm5
   202  	vpmaxub	ymm0, ymm0, ymm4
   203  	vpminub	ymm2, ymm2, ymm5
   204  	vpminub	ymm1, ymm1, ymm4
   205  .LBB1_10:
   206  	vpminub	ymm1, ymm1, ymm2
   207  	vpmaxub	ymm0, ymm0, ymm3
   208  	vextracti128	xmm2, ymm0, 1
   209  	vpmaxub	xmm0, xmm0, xmm2
   210  	vpcmpeqd	xmm2, xmm2, xmm2
   211  	vpxor	xmm0, xmm0, xmm2
   212  	vpsrlw	xmm2, xmm0, 8
   213  	vpminub	xmm0, xmm0, xmm2
   214  	vphminposuw	xmm0, xmm0
   215  	vmovd	eax, xmm0
   216  	not	al
   217  	vextracti128	xmm0, ymm1, 1
   218  	vpminub	xmm0, xmm1, xmm0
   219  	vpsrlw	xmm1, xmm0, 8
   220  	vpminub	xmm0, xmm0, xmm1
   221  	vphminposuw	xmm0, xmm0
   222  	vmovd	esi, xmm0
   223  	cmp	r10, r9
   224  	je	.LBB1_12
   225  	.p2align	4, 0x90
   226  .LBB1_11:                               # =>This Inner Loop Header: Depth=1
   227  	movzx	r8d, byte ptr [rdi + r10]
   228  	cmp	sil, r8b
   229  	movzx	esi, sil
   230  	cmovae	esi, r8d
   231  	cmp	al, r8b
   232  	movzx	eax, al
   233  	cmovbe	eax, r8d
   234  	add	r10, 1
   235  	cmp	r9, r10
   236  	jne	.LBB1_11
   237  .LBB1_12:
   238  	mov	byte ptr [rcx], al
   239  	mov	byte ptr [rdx], sil
   240  	mov	rsp, rbp
   241  	pop	rbp
   242  	vzeroupper
   243  	ret
   244  .LBB1_5:
   245  	vpxor	xmm0, xmm0, xmm0
   246  	vpcmpeqd	ymm1, ymm1, ymm1
   247  	xor	eax, eax
   248  	vpcmpeqd	ymm2, ymm2, ymm2
   249  	vpxor	xmm3, xmm3, xmm3
   250  	test	r8b, 1
   251  	jne	.LBB1_9
   252  	jmp	.LBB1_10
   253  .Lfunc_end1:
   254  	.size	uint8_max_min_avx2, .Lfunc_end1-uint8_max_min_avx2
   255                                          # -- End function
   256  	.section	.rodata.cst32,"aM",@progbits,32
   257  	.p2align	5                               # -- Begin function int16_max_min_avx2
   258  .LCPI2_0:
   259  	.short	32768                           # 0x8000
   260  	.short	32768                           # 0x8000
   261  	.short	32768                           # 0x8000
   262  	.short	32768                           # 0x8000
   263  	.short	32768                           # 0x8000
   264  	.short	32768                           # 0x8000
   265  	.short	32768                           # 0x8000
   266  	.short	32768                           # 0x8000
   267  	.short	32768                           # 0x8000
   268  	.short	32768                           # 0x8000
   269  	.short	32768                           # 0x8000
   270  	.short	32768                           # 0x8000
   271  	.short	32768                           # 0x8000
   272  	.short	32768                           # 0x8000
   273  	.short	32768                           # 0x8000
   274  	.short	32768                           # 0x8000
   275  .LCPI2_1:
   276  	.short	32767                           # 0x7fff
   277  	.short	32767                           # 0x7fff
   278  	.short	32767                           # 0x7fff
   279  	.short	32767                           # 0x7fff
   280  	.short	32767                           # 0x7fff
   281  	.short	32767                           # 0x7fff
   282  	.short	32767                           # 0x7fff
   283  	.short	32767                           # 0x7fff
   284  	.short	32767                           # 0x7fff
   285  	.short	32767                           # 0x7fff
   286  	.short	32767                           # 0x7fff
   287  	.short	32767                           # 0x7fff
   288  	.short	32767                           # 0x7fff
   289  	.short	32767                           # 0x7fff
   290  	.short	32767                           # 0x7fff
   291  	.short	32767                           # 0x7fff
   292  	.section	.rodata.cst16,"aM",@progbits,16
   293  	.p2align	4
   294  .LCPI2_2:
   295  	.short	32767                           # 0x7fff
   296  	.short	32767                           # 0x7fff
   297  	.short	32767                           # 0x7fff
   298  	.short	32767                           # 0x7fff
   299  	.short	32767                           # 0x7fff
   300  	.short	32767                           # 0x7fff
   301  	.short	32767                           # 0x7fff
   302  	.short	32767                           # 0x7fff
   303  .LCPI2_3:
   304  	.short	32768                           # 0x8000
   305  	.short	32768                           # 0x8000
   306  	.short	32768                           # 0x8000
   307  	.short	32768                           # 0x8000
   308  	.short	32768                           # 0x8000
   309  	.short	32768                           # 0x8000
   310  	.short	32768                           # 0x8000
   311  	.short	32768                           # 0x8000
   312  	.text
   313  	.globl	int16_max_min_avx2
   314  	.p2align	4, 0x90
   315  	.type	int16_max_min_avx2,@function
   316  int16_max_min_avx2:                     # @int16_max_min_avx2
   317  # %bb.0:
   318  	push	rbp
   319  	mov	rbp, rsp
   320  	and	rsp, -8
   321  	test	esi, esi
   322  	jle	.LBB2_1
   323  # %bb.2:
   324  	mov	r9d, esi
   325  	cmp	esi, 31
   326  	ja	.LBB2_4
   327  # %bb.3:
   328  	mov	r8w, -32768
   329  	mov	si, 32767
   330  	xor	r10d, r10d
   331  	jmp	.LBB2_11
   332  .LBB2_1:
   333  	mov	si, 32767
   334  	mov	r8w, -32768
   335  	jmp	.LBB2_12
   336  .LBB2_4:
   337  	mov	r10d, r9d
   338  	and	r10d, -32
   339  	lea	rax, [r10 - 32]
   340  	mov	r8, rax
   341  	shr	r8, 5
   342  	add	r8, 1
   343  	test	rax, rax
   344  	je	.LBB2_5
   345  # %bb.6:
   346  	mov	rsi, r8
   347  	and	rsi, -2
   348  	neg	rsi
   349  	vmovdqa	ymm1, ymmword ptr [rip + .LCPI2_0] # ymm1 = [32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768]
   350  	vmovdqa	ymm0, ymmword ptr [rip + .LCPI2_1] # ymm0 = [32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767]
   351  	xor	eax, eax
   352  	vmovdqa	ymm2, ymm0
   353  	vmovdqa	ymm3, ymm1
   354  	.p2align	4, 0x90
   355  .LBB2_7:                                # =>This Inner Loop Header: Depth=1
   356  	vmovdqu	ymm4, ymmword ptr [rdi + 2*rax]
   357  	vmovdqu	ymm5, ymmword ptr [rdi + 2*rax + 32]
   358  	vmovdqu	ymm6, ymmword ptr [rdi + 2*rax + 64]
   359  	vmovdqu	ymm7, ymmword ptr [rdi + 2*rax + 96]
   360  	vpminsw	ymm0, ymm0, ymm4
   361  	vpminsw	ymm2, ymm2, ymm5
   362  	vpmaxsw	ymm1, ymm1, ymm4
   363  	vpmaxsw	ymm3, ymm3, ymm5
   364  	vpminsw	ymm0, ymm0, ymm6
   365  	vpminsw	ymm2, ymm2, ymm7
   366  	vpmaxsw	ymm1, ymm1, ymm6
   367  	vpmaxsw	ymm3, ymm3, ymm7
   368  	add	rax, 64
   369  	add	rsi, 2
   370  	jne	.LBB2_7
   371  # %bb.8:
   372  	test	r8b, 1
   373  	je	.LBB2_10
   374  .LBB2_9:
   375  	vmovdqu	ymm4, ymmword ptr [rdi + 2*rax]
   376  	vmovdqu	ymm5, ymmword ptr [rdi + 2*rax + 32]
   377  	vpmaxsw	ymm3, ymm3, ymm5
   378  	vpmaxsw	ymm1, ymm1, ymm4
   379  	vpminsw	ymm2, ymm2, ymm5
   380  	vpminsw	ymm0, ymm0, ymm4
   381  .LBB2_10:
   382  	vpmaxsw	ymm1, ymm1, ymm3
   383  	vextracti128	xmm3, ymm1, 1
   384  	vpmaxsw	xmm1, xmm1, xmm3
   385  	vpxor	xmm1, xmm1, xmmword ptr [rip + .LCPI2_2]
   386  	vpminsw	ymm0, ymm0, ymm2
   387  	vphminposuw	xmm1, xmm1
   388  	vmovd	r8d, xmm1
   389  	xor	r8d, 32767
   390  	vextracti128	xmm1, ymm0, 1
   391  	vpminsw	xmm0, xmm0, xmm1
   392  	vpxor	xmm0, xmm0, xmmword ptr [rip + .LCPI2_3]
   393  	vphminposuw	xmm0, xmm0
   394  	vmovd	esi, xmm0
   395  	xor	esi, 32768
   396  	cmp	r10, r9
   397  	je	.LBB2_12
   398  	.p2align	4, 0x90
   399  .LBB2_11:                               # =>This Inner Loop Header: Depth=1
   400  	movzx	eax, word ptr [rdi + 2*r10]
   401  	cmp	si, ax
   402  	cmovg	esi, eax
   403  	cmp	r8w, ax
   404  	cmovl	r8d, eax
   405  	add	r10, 1
   406  	cmp	r9, r10
   407  	jne	.LBB2_11
   408  .LBB2_12:
   409  	mov	word ptr [rcx], r8w
   410  	mov	word ptr [rdx], si
   411  	mov	rsp, rbp
   412  	pop	rbp
   413  	vzeroupper
   414  	ret
   415  .LBB2_5:
   416  	vmovdqa	ymm1, ymmword ptr [rip + .LCPI2_0] # ymm1 = [32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768]
   417  	vmovdqa	ymm0, ymmword ptr [rip + .LCPI2_1] # ymm0 = [32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767]
   418  	xor	eax, eax
   419  	vmovdqa	ymm2, ymm0
   420  	vmovdqa	ymm3, ymm1
   421  	test	r8b, 1
   422  	jne	.LBB2_9
   423  	jmp	.LBB2_10
   424  .Lfunc_end2:
   425  	.size	int16_max_min_avx2, .Lfunc_end2-int16_max_min_avx2
   426                                          # -- End function
   427  	.globl	uint16_max_min_avx2             # -- Begin function uint16_max_min_avx2
   428  	.p2align	4, 0x90
   429  	.type	uint16_max_min_avx2,@function
   430  uint16_max_min_avx2:                    # @uint16_max_min_avx2
   431  # %bb.0:
   432  	push	rbp
   433  	mov	rbp, rsp
   434  	and	rsp, -8
   435  	test	esi, esi
   436  	jle	.LBB3_1
   437  # %bb.2:
   438  	mov	r9d, esi
   439  	cmp	esi, 31
   440  	ja	.LBB3_4
   441  # %bb.3:
   442  	mov	r8w, -1
   443  	xor	r10d, r10d
   444  	xor	esi, esi
   445  	jmp	.LBB3_11
   446  .LBB3_1:
   447  	mov	r8w, -1
   448  	xor	esi, esi
   449  	jmp	.LBB3_12
   450  .LBB3_4:
   451  	mov	r10d, r9d
   452  	and	r10d, -32
   453  	lea	rax, [r10 - 32]
   454  	mov	r8, rax
   455  	shr	r8, 5
   456  	add	r8, 1
   457  	test	rax, rax
   458  	je	.LBB3_5
   459  # %bb.6:
   460  	mov	rsi, r8
   461  	and	rsi, -2
   462  	neg	rsi
   463  	vpxor	xmm0, xmm0, xmm0
   464  	vpcmpeqd	ymm1, ymm1, ymm1
   465  	xor	eax, eax
   466  	vpcmpeqd	ymm2, ymm2, ymm2
   467  	vpxor	xmm3, xmm3, xmm3
   468  	.p2align	4, 0x90
   469  .LBB3_7:                                # =>This Inner Loop Header: Depth=1
   470  	vmovdqu	ymm4, ymmword ptr [rdi + 2*rax]
   471  	vmovdqu	ymm5, ymmword ptr [rdi + 2*rax + 32]
   472  	vmovdqu	ymm6, ymmword ptr [rdi + 2*rax + 64]
   473  	vmovdqu	ymm7, ymmword ptr [rdi + 2*rax + 96]
   474  	vpminuw	ymm1, ymm1, ymm4
   475  	vpminuw	ymm2, ymm2, ymm5
   476  	vpmaxuw	ymm0, ymm0, ymm4
   477  	vpmaxuw	ymm3, ymm3, ymm5
   478  	vpminuw	ymm1, ymm1, ymm6
   479  	vpminuw	ymm2, ymm2, ymm7
   480  	vpmaxuw	ymm0, ymm0, ymm6
   481  	vpmaxuw	ymm3, ymm3, ymm7
   482  	add	rax, 64
   483  	add	rsi, 2
   484  	jne	.LBB3_7
   485  # %bb.8:
   486  	test	r8b, 1
   487  	je	.LBB3_10
   488  .LBB3_9:
   489  	vmovdqu	ymm4, ymmword ptr [rdi + 2*rax]
   490  	vmovdqu	ymm5, ymmword ptr [rdi + 2*rax + 32]
   491  	vpmaxuw	ymm3, ymm3, ymm5
   492  	vpmaxuw	ymm0, ymm0, ymm4
   493  	vpminuw	ymm2, ymm2, ymm5
   494  	vpminuw	ymm1, ymm1, ymm4
   495  .LBB3_10:
   496  	vpminuw	ymm1, ymm1, ymm2
   497  	vpmaxuw	ymm0, ymm0, ymm3
   498  	vextracti128	xmm2, ymm0, 1
   499  	vpmaxuw	xmm0, xmm0, xmm2
   500  	vpcmpeqd	xmm2, xmm2, xmm2
   501  	vpxor	xmm0, xmm0, xmm2
   502  	vphminposuw	xmm0, xmm0
   503  	vmovd	esi, xmm0
   504  	not	esi
   505  	vextracti128	xmm0, ymm1, 1
   506  	vpminuw	xmm0, xmm1, xmm0
   507  	vphminposuw	xmm0, xmm0
   508  	vmovd	r8d, xmm0
   509  	cmp	r10, r9
   510  	je	.LBB3_12
   511  	.p2align	4, 0x90
   512  .LBB3_11:                               # =>This Inner Loop Header: Depth=1
   513  	movzx	eax, word ptr [rdi + 2*r10]
   514  	cmp	r8w, ax
   515  	cmovae	r8d, eax
   516  	cmp	si, ax
   517  	cmovbe	esi, eax
   518  	add	r10, 1
   519  	cmp	r9, r10
   520  	jne	.LBB3_11
   521  .LBB3_12:
   522  	mov	word ptr [rcx], si
   523  	mov	word ptr [rdx], r8w
   524  	mov	rsp, rbp
   525  	pop	rbp
   526  	vzeroupper
   527  	ret
   528  .LBB3_5:
   529  	vpxor	xmm0, xmm0, xmm0
   530  	vpcmpeqd	ymm1, ymm1, ymm1
   531  	xor	eax, eax
   532  	vpcmpeqd	ymm2, ymm2, ymm2
   533  	vpxor	xmm3, xmm3, xmm3
   534  	test	r8b, 1
   535  	jne	.LBB3_9
   536  	jmp	.LBB3_10
   537  .Lfunc_end3:
   538  	.size	uint16_max_min_avx2, .Lfunc_end3-uint16_max_min_avx2
   539                                          # -- End function
   540  	.section	.rodata.cst4,"aM",@progbits,4
   541  	.p2align	2                               # -- Begin function int32_max_min_avx2
   542  .LCPI4_0:
   543  	.long	2147483648                      # 0x80000000
   544  .LCPI4_1:
   545  	.long	2147483647                      # 0x7fffffff
   546  	.text
   547  	.globl	int32_max_min_avx2
   548  	.p2align	4, 0x90
   549  	.type	int32_max_min_avx2,@function
   550  int32_max_min_avx2:                     # @int32_max_min_avx2
   551  # %bb.0:
   552  	push	rbp
   553  	mov	rbp, rsp
   554  	and	rsp, -8
   555  	test	esi, esi
   556  	jle	.LBB4_1
   557  # %bb.2:
   558  	mov	r8d, esi
   559  	cmp	esi, 31
   560  	ja	.LBB4_4
   561  # %bb.3:
   562  	mov	r10d, -2147483648
   563  	mov	eax, 2147483647
   564  	xor	r9d, r9d
   565  	jmp	.LBB4_7
   566  .LBB4_1:
   567  	mov	eax, 2147483647
   568  	mov	esi, -2147483648
   569  	jmp	.LBB4_8
   570  .LBB4_4:
   571  	mov	r9d, r8d
   572  	vpbroadcastd	ymm4, dword ptr [rip + .LCPI4_0] # ymm4 = [2147483648,2147483648,2147483648,2147483648,2147483648,2147483648,2147483648,2147483648]
   573  	and	r9d, -32
   574  	vpbroadcastd	ymm0, dword ptr [rip + .LCPI4_1] # ymm0 = [2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647]
   575  	xor	eax, eax
   576  	vmovdqa	ymm1, ymm0
   577  	vmovdqa	ymm2, ymm0
   578  	vmovdqa	ymm3, ymm0
   579  	vmovdqa	ymm5, ymm4
   580  	vmovdqa	ymm6, ymm4
   581  	vmovdqa	ymm7, ymm4
   582  	.p2align	4, 0x90
   583  .LBB4_5:                                # =>This Inner Loop Header: Depth=1
   584  	vmovdqu	ymm8, ymmword ptr [rdi + 4*rax]
   585  	vmovdqu	ymm9, ymmword ptr [rdi + 4*rax + 32]
   586  	vmovdqu	ymm10, ymmword ptr [rdi + 4*rax + 64]
   587  	vmovdqu	ymm11, ymmword ptr [rdi + 4*rax + 96]
   588  	vpminsd	ymm0, ymm0, ymm8
   589  	vpminsd	ymm1, ymm1, ymm9
   590  	vpminsd	ymm2, ymm2, ymm10
   591  	vpminsd	ymm3, ymm3, ymm11
   592  	vpmaxsd	ymm4, ymm4, ymm8
   593  	vpmaxsd	ymm5, ymm5, ymm9
   594  	vpmaxsd	ymm6, ymm6, ymm10
   595  	vpmaxsd	ymm7, ymm7, ymm11
   596  	add	rax, 32
   597  	cmp	r9, rax
   598  	jne	.LBB4_5
   599  # %bb.6:
   600  	vpmaxsd	ymm4, ymm4, ymm5
   601  	vpmaxsd	ymm4, ymm4, ymm6
   602  	vpmaxsd	ymm4, ymm4, ymm7
   603  	vextracti128	xmm5, ymm4, 1
   604  	vpmaxsd	xmm4, xmm4, xmm5
   605  	vpshufd	xmm5, xmm4, 78                  # xmm5 = xmm4[2,3,0,1]
   606  	vpmaxsd	xmm4, xmm4, xmm5
   607  	vpshufd	xmm5, xmm4, 229                 # xmm5 = xmm4[1,1,2,3]
   608  	vpmaxsd	xmm4, xmm4, xmm5
   609  	vmovd	r10d, xmm4
   610  	vpminsd	ymm0, ymm0, ymm1
   611  	vpminsd	ymm0, ymm0, ymm2
   612  	vpminsd	ymm0, ymm0, ymm3
   613  	vextracti128	xmm1, ymm0, 1
   614  	vpminsd	xmm0, xmm0, xmm1
   615  	vpshufd	xmm1, xmm0, 78                  # xmm1 = xmm0[2,3,0,1]
   616  	vpminsd	xmm0, xmm0, xmm1
   617  	vpshufd	xmm1, xmm0, 229                 # xmm1 = xmm0[1,1,2,3]
   618  	vpminsd	xmm0, xmm0, xmm1
   619  	vmovd	eax, xmm0
   620  	mov	esi, r10d
   621  	cmp	r9, r8
   622  	je	.LBB4_8
   623  	.p2align	4, 0x90
   624  .LBB4_7:                                # =>This Inner Loop Header: Depth=1
   625  	mov	esi, dword ptr [rdi + 4*r9]
   626  	cmp	eax, esi
   627  	cmovg	eax, esi
   628  	cmp	r10d, esi
   629  	cmovge	esi, r10d
   630  	add	r9, 1
   631  	mov	r10d, esi
   632  	cmp	r8, r9
   633  	jne	.LBB4_7
   634  .LBB4_8:
   635  	mov	dword ptr [rcx], esi
   636  	mov	dword ptr [rdx], eax
   637  	mov	rsp, rbp
   638  	pop	rbp
   639  	vzeroupper
   640  	ret
   641  .Lfunc_end4:
   642  	.size	int32_max_min_avx2, .Lfunc_end4-int32_max_min_avx2
   643                                          # -- End function
   644  	.globl	uint32_max_min_avx2             # -- Begin function uint32_max_min_avx2
   645  	.p2align	4, 0x90
   646  	.type	uint32_max_min_avx2,@function
   647  uint32_max_min_avx2:                    # @uint32_max_min_avx2
   648  # %bb.0:
   649  	push	rbp
   650  	mov	rbp, rsp
   651  	and	rsp, -8
   652  	test	esi, esi
   653  	jle	.LBB5_1
   654  # %bb.2:
   655  	mov	r8d, esi
   656  	cmp	esi, 31
   657  	ja	.LBB5_4
   658  # %bb.3:
   659  	xor	r9d, r9d
   660  	mov	eax, -1
   661  	xor	r10d, r10d
   662  	jmp	.LBB5_7
   663  .LBB5_1:
   664  	mov	eax, -1
   665  	xor	esi, esi
   666  	jmp	.LBB5_8
   667  .LBB5_4:
   668  	mov	r9d, r8d
   669  	and	r9d, -32
   670  	vpxor	xmm4, xmm4, xmm4
   671  	vpcmpeqd	ymm0, ymm0, ymm0
   672  	xor	eax, eax
   673  	vpcmpeqd	ymm1, ymm1, ymm1
   674  	vpcmpeqd	ymm2, ymm2, ymm2
   675  	vpcmpeqd	ymm3, ymm3, ymm3
   676  	vpxor	xmm5, xmm5, xmm5
   677  	vpxor	xmm6, xmm6, xmm6
   678  	vpxor	xmm7, xmm7, xmm7
   679  	.p2align	4, 0x90
   680  .LBB5_5:                                # =>This Inner Loop Header: Depth=1
   681  	vmovdqu	ymm8, ymmword ptr [rdi + 4*rax]
   682  	vmovdqu	ymm9, ymmword ptr [rdi + 4*rax + 32]
   683  	vmovdqu	ymm10, ymmword ptr [rdi + 4*rax + 64]
   684  	vmovdqu	ymm11, ymmword ptr [rdi + 4*rax + 96]
   685  	vpminud	ymm0, ymm0, ymm8
   686  	vpminud	ymm1, ymm1, ymm9
   687  	vpminud	ymm2, ymm2, ymm10
   688  	vpminud	ymm3, ymm3, ymm11
   689  	vpmaxud	ymm4, ymm4, ymm8
   690  	vpmaxud	ymm5, ymm5, ymm9
   691  	vpmaxud	ymm6, ymm6, ymm10
   692  	vpmaxud	ymm7, ymm7, ymm11
   693  	add	rax, 32
   694  	cmp	r9, rax
   695  	jne	.LBB5_5
   696  # %bb.6:
   697  	vpmaxud	ymm4, ymm4, ymm5
   698  	vpmaxud	ymm4, ymm4, ymm6
   699  	vpmaxud	ymm4, ymm4, ymm7
   700  	vextracti128	xmm5, ymm4, 1
   701  	vpmaxud	xmm4, xmm4, xmm5
   702  	vpshufd	xmm5, xmm4, 78                  # xmm5 = xmm4[2,3,0,1]
   703  	vpmaxud	xmm4, xmm4, xmm5
   704  	vpshufd	xmm5, xmm4, 229                 # xmm5 = xmm4[1,1,2,3]
   705  	vpmaxud	xmm4, xmm4, xmm5
   706  	vmovd	r10d, xmm4
   707  	vpminud	ymm0, ymm0, ymm1
   708  	vpminud	ymm0, ymm0, ymm2
   709  	vpminud	ymm0, ymm0, ymm3
   710  	vextracti128	xmm1, ymm0, 1
   711  	vpminud	xmm0, xmm0, xmm1
   712  	vpshufd	xmm1, xmm0, 78                  # xmm1 = xmm0[2,3,0,1]
   713  	vpminud	xmm0, xmm0, xmm1
   714  	vpshufd	xmm1, xmm0, 229                 # xmm1 = xmm0[1,1,2,3]
   715  	vpminud	xmm0, xmm0, xmm1
   716  	vmovd	eax, xmm0
   717  	mov	esi, r10d
   718  	cmp	r9, r8
   719  	je	.LBB5_8
   720  	.p2align	4, 0x90
   721  .LBB5_7:                                # =>This Inner Loop Header: Depth=1
   722  	mov	esi, dword ptr [rdi + 4*r9]
   723  	cmp	eax, esi
   724  	cmovae	eax, esi
   725  	cmp	r10d, esi
   726  	cmova	esi, r10d
   727  	add	r9, 1
   728  	mov	r10d, esi
   729  	cmp	r8, r9
   730  	jne	.LBB5_7
   731  .LBB5_8:
   732  	mov	dword ptr [rcx], esi
   733  	mov	dword ptr [rdx], eax
   734  	mov	rsp, rbp
   735  	pop	rbp
   736  	vzeroupper
   737  	ret
   738  .Lfunc_end5:
   739  	.size	uint32_max_min_avx2, .Lfunc_end5-uint32_max_min_avx2
   740                                          # -- End function
   741  	.section	.rodata.cst8,"aM",@progbits,8
   742  	.p2align	3                               # -- Begin function int64_max_min_avx2
   743  .LCPI6_0:
   744  	.quad	-9223372036854775808            # 0x8000000000000000
   745  .LCPI6_1:
   746  	.quad	9223372036854775807             # 0x7fffffffffffffff
   747  	.text
   748  	.globl	int64_max_min_avx2
   749  	.p2align	4, 0x90
   750  	.type	int64_max_min_avx2,@function
   751  int64_max_min_avx2:                     # @int64_max_min_avx2
   752  # %bb.0:
   753  	push	rbp
   754  	mov	rbp, rsp
   755  	and	rsp, -8
   756  	movabs	rax, 9223372036854775807
   757  	test	esi, esi
   758  	jle	.LBB6_1
   759  # %bb.2:
   760  	mov	r8d, esi
   761  	cmp	esi, 15
   762  	ja	.LBB6_4
   763  # %bb.3:
   764  	lea	r10, [rax + 1]
   765  	xor	r9d, r9d
   766  	jmp	.LBB6_7
   767  .LBB6_1:
   768  	lea	rsi, [rax + 1]
   769  	jmp	.LBB6_8
   770  .LBB6_4:
   771  	mov	r9d, r8d
   772  	vpbroadcastq	ymm4, qword ptr [rip + .LCPI6_0] # ymm4 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
   773  	and	r9d, -16
   774  	vpbroadcastq	ymm0, qword ptr [rip + .LCPI6_1] # ymm0 = [9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807]
   775  	xor	eax, eax
   776  	vmovdqa	ymm3, ymm0
   777  	vmovdqa	ymm2, ymm0
   778  	vmovdqa	ymm1, ymm0
   779  	vmovdqa	ymm7, ymm4
   780  	vmovdqa	ymm6, ymm4
   781  	vmovdqa	ymm5, ymm4
   782  	.p2align	4, 0x90
   783  .LBB6_5:                                # =>This Inner Loop Header: Depth=1
   784  	vmovdqu	ymm8, ymmword ptr [rdi + 8*rax]
   785  	vpcmpgtq	ymm9, ymm8, ymm0
   786  	vblendvpd	ymm0, ymm8, ymm0, ymm9
   787  	vmovdqu	ymm9, ymmword ptr [rdi + 8*rax + 32]
   788  	vpcmpgtq	ymm10, ymm9, ymm3
   789  	vblendvpd	ymm3, ymm9, ymm3, ymm10
   790  	vmovdqu	ymm10, ymmword ptr [rdi + 8*rax + 64]
   791  	vpcmpgtq	ymm11, ymm10, ymm2
   792  	vblendvpd	ymm2, ymm10, ymm2, ymm11
   793  	vmovdqu	ymm11, ymmword ptr [rdi + 8*rax + 96]
   794  	vpcmpgtq	ymm12, ymm11, ymm1
   795  	vblendvpd	ymm1, ymm11, ymm1, ymm12
   796  	vpcmpgtq	ymm12, ymm4, ymm8
   797  	vblendvpd	ymm4, ymm8, ymm4, ymm12
   798  	vpcmpgtq	ymm8, ymm7, ymm9
   799  	vblendvpd	ymm7, ymm9, ymm7, ymm8
   800  	vpcmpgtq	ymm8, ymm6, ymm10
   801  	vblendvpd	ymm6, ymm10, ymm6, ymm8
   802  	vpcmpgtq	ymm8, ymm5, ymm11
   803  	vblendvpd	ymm5, ymm11, ymm5, ymm8
   804  	add	rax, 16
   805  	cmp	r9, rax
   806  	jne	.LBB6_5
   807  # %bb.6:
   808  	vpcmpgtq	ymm8, ymm4, ymm7
   809  	vblendvpd	ymm4, ymm7, ymm4, ymm8
   810  	vpcmpgtq	ymm7, ymm4, ymm6
   811  	vblendvpd	ymm4, ymm6, ymm4, ymm7
   812  	vpcmpgtq	ymm6, ymm4, ymm5
   813  	vblendvpd	ymm4, ymm5, ymm4, ymm6
   814  	vextractf128	xmm5, ymm4, 1
   815  	vpcmpgtq	xmm6, xmm4, xmm5
   816  	vblendvpd	xmm4, xmm5, xmm4, xmm6
   817  	vpermilps	xmm5, xmm4, 78          # xmm5 = xmm4[2,3,0,1]
   818  	vpcmpgtq	xmm6, xmm4, xmm5
   819  	vblendvpd	xmm4, xmm5, xmm4, xmm6
   820  	vmovq	r10, xmm4
   821  	vpcmpgtq	ymm4, ymm3, ymm0
   822  	vblendvpd	ymm0, ymm3, ymm0, ymm4
   823  	vpcmpgtq	ymm3, ymm2, ymm0
   824  	vblendvpd	ymm0, ymm2, ymm0, ymm3
   825  	vpcmpgtq	ymm2, ymm1, ymm0
   826  	vblendvpd	ymm0, ymm1, ymm0, ymm2
   827  	vextractf128	xmm1, ymm0, 1
   828  	vpcmpgtq	xmm2, xmm1, xmm0
   829  	vblendvpd	xmm0, xmm1, xmm0, xmm2
   830  	vpermilps	xmm1, xmm0, 78          # xmm1 = xmm0[2,3,0,1]
   831  	vpcmpgtq	xmm2, xmm1, xmm0
   832  	vblendvpd	xmm0, xmm1, xmm0, xmm2
   833  	vmovq	rax, xmm0
   834  	mov	rsi, r10
   835  	cmp	r9, r8
   836  	je	.LBB6_8
   837  	.p2align	4, 0x90
   838  .LBB6_7:                                # =>This Inner Loop Header: Depth=1
   839  	mov	rsi, qword ptr [rdi + 8*r9]
   840  	cmp	rax, rsi
   841  	cmovg	rax, rsi
   842  	cmp	r10, rsi
   843  	cmovge	rsi, r10
   844  	add	r9, 1
   845  	mov	r10, rsi
   846  	cmp	r8, r9
   847  	jne	.LBB6_7
   848  .LBB6_8:
   849  	mov	qword ptr [rcx], rsi
   850  	mov	qword ptr [rdx], rax
   851  	mov	rsp, rbp
   852  	pop	rbp
   853  	vzeroupper
   854  	ret
   855  .Lfunc_end6:
   856  	.size	int64_max_min_avx2, .Lfunc_end6-int64_max_min_avx2
   857                                          # -- End function
   858  	.section	.rodata.cst8,"aM",@progbits,8
   859  	.p2align	3                               # -- Begin function uint64_max_min_avx2
   860  .LCPI7_0:
   861  	.quad	-9223372036854775808            # 0x8000000000000000
   862  	.text
   863  	.globl	uint64_max_min_avx2
   864  	.p2align	4, 0x90
   865  	.type	uint64_max_min_avx2,@function
   866  uint64_max_min_avx2:                    # @uint64_max_min_avx2
   867  # %bb.0:
   868  	push	rbp
   869  	mov	rbp, rsp
   870  	and	rsp, -8
   871  	test	esi, esi
   872  	jle	.LBB7_1
   873  # %bb.2:
   874  	mov	r8d, esi
   875  	cmp	esi, 15
   876  	ja	.LBB7_4
   877  # %bb.3:
   878  	mov	rax, -1
   879  	xor	r9d, r9d
   880  	xor	r10d, r10d
   881  	jmp	.LBB7_7
   882  .LBB7_1:
   883  	mov	rax, -1
   884  	xor	esi, esi
   885  	jmp	.LBB7_8
   886  .LBB7_4:
   887  	mov	r9d, r8d
   888  	and	r9d, -16
   889  	vpxor	xmm5, xmm5, xmm5
   890  	vpcmpeqd	ymm1, ymm1, ymm1
   891  	xor	eax, eax
   892  	vpbroadcastq	ymm0, qword ptr [rip + .LCPI7_0] # ymm0 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
   893  	vpcmpeqd	ymm4, ymm4, ymm4
   894  	vpcmpeqd	ymm3, ymm3, ymm3
   895  	vpcmpeqd	ymm2, ymm2, ymm2
   896  	vpxor	xmm8, xmm8, xmm8
   897  	vpxor	xmm7, xmm7, xmm7
   898  	vpxor	xmm6, xmm6, xmm6
   899  	.p2align	4, 0x90
   900  .LBB7_5:                                # =>This Inner Loop Header: Depth=1
   901  	vmovdqu	ymm9, ymmword ptr [rdi + 8*rax]
   902  	vpxor	ymm10, ymm1, ymm0
   903  	vpxor	ymm11, ymm9, ymm0
   904  	vpcmpgtq	ymm10, ymm11, ymm10
   905  	vblendvpd	ymm1, ymm9, ymm1, ymm10
   906  	vpxor	ymm10, ymm5, ymm0
   907  	vpcmpgtq	ymm10, ymm10, ymm11
   908  	vblendvpd	ymm5, ymm9, ymm5, ymm10
   909  	vmovdqu	ymm9, ymmword ptr [rdi + 8*rax + 32]
   910  	vpxor	ymm10, ymm4, ymm0
   911  	vpxor	ymm11, ymm9, ymm0
   912  	vpcmpgtq	ymm10, ymm11, ymm10
   913  	vblendvpd	ymm4, ymm9, ymm4, ymm10
   914  	vpxor	ymm10, ymm8, ymm0
   915  	vpcmpgtq	ymm10, ymm10, ymm11
   916  	vmovdqu	ymm11, ymmword ptr [rdi + 8*rax + 64]
   917  	vblendvpd	ymm8, ymm9, ymm8, ymm10
   918  	vpxor	ymm9, ymm3, ymm0
   919  	vpxor	ymm10, ymm11, ymm0
   920  	vpcmpgtq	ymm9, ymm10, ymm9
   921  	vblendvpd	ymm3, ymm11, ymm3, ymm9
   922  	vpxor	ymm9, ymm7, ymm0
   923  	vpcmpgtq	ymm9, ymm9, ymm10
   924  	vblendvpd	ymm7, ymm11, ymm7, ymm9
   925  	vmovdqu	ymm9, ymmword ptr [rdi + 8*rax + 96]
   926  	vpxor	ymm10, ymm2, ymm0
   927  	vpxor	ymm11, ymm9, ymm0
   928  	vpcmpgtq	ymm10, ymm11, ymm10
   929  	vblendvpd	ymm2, ymm9, ymm2, ymm10
   930  	vpxor	ymm10, ymm6, ymm0
   931  	vpcmpgtq	ymm10, ymm10, ymm11
   932  	vblendvpd	ymm6, ymm9, ymm6, ymm10
   933  	add	rax, 16
   934  	cmp	r9, rax
   935  	jne	.LBB7_5
   936  # %bb.6:
   937  	vpxor	ymm9, ymm8, ymm0
   938  	vpxor	ymm10, ymm5, ymm0
   939  	vpcmpgtq	ymm9, ymm10, ymm9
   940  	vblendvpd	ymm5, ymm8, ymm5, ymm9
   941  	vxorpd	ymm8, ymm5, ymm0
   942  	vpxor	ymm9, ymm7, ymm0
   943  	vpcmpgtq	ymm8, ymm8, ymm9
   944  	vblendvpd	ymm5, ymm7, ymm5, ymm8
   945  	vxorpd	ymm7, ymm5, ymm0
   946  	vpxor	ymm8, ymm6, ymm0
   947  	vpcmpgtq	ymm7, ymm7, ymm8
   948  	vblendvpd	ymm5, ymm6, ymm5, ymm7
   949  	vextractf128	xmm6, ymm5, 1
   950  	vxorpd	xmm8, xmm6, xmm0
   951  	vxorpd	xmm7, xmm5, xmm0
   952  	vpcmpgtq	xmm7, xmm7, xmm8
   953  	vblendvpd	xmm5, xmm6, xmm5, xmm7
   954  	vpermilps	xmm6, xmm5, 78          # xmm6 = xmm5[2,3,0,1]
   955  	vxorpd	xmm8, xmm5, xmm0
   956  	vxorpd	xmm7, xmm6, xmm0
   957  	vpcmpgtq	xmm7, xmm8, xmm7
   958  	vblendvpd	xmm5, xmm6, xmm5, xmm7
   959  	vpxor	ymm6, ymm1, ymm0
   960  	vpxor	ymm7, ymm4, ymm0
   961  	vpcmpgtq	ymm6, ymm7, ymm6
   962  	vblendvpd	ymm1, ymm4, ymm1, ymm6
   963  	vxorpd	ymm4, ymm1, ymm0
   964  	vpxor	ymm6, ymm3, ymm0
   965  	vpcmpgtq	ymm4, ymm6, ymm4
   966  	vblendvpd	ymm1, ymm3, ymm1, ymm4
   967  	vmovq	r10, xmm5
   968  	vxorpd	ymm3, ymm1, ymm0
   969  	vpxor	ymm4, ymm2, ymm0
   970  	vpcmpgtq	ymm3, ymm4, ymm3
   971  	vblendvpd	ymm1, ymm2, ymm1, ymm3
   972  	vextractf128	xmm2, ymm1, 1
   973  	vxorpd	xmm3, xmm1, xmm0
   974  	vxorpd	xmm4, xmm2, xmm0
   975  	vpcmpgtq	xmm3, xmm4, xmm3
   976  	vblendvpd	xmm1, xmm2, xmm1, xmm3
   977  	vpermilps	xmm2, xmm1, 78          # xmm2 = xmm1[2,3,0,1]
   978  	vxorpd	xmm3, xmm1, xmm0
   979  	vxorpd	xmm0, xmm2, xmm0
   980  	vpcmpgtq	xmm0, xmm0, xmm3
   981  	vblendvpd	xmm0, xmm2, xmm1, xmm0
   982  	vmovq	rax, xmm0
   983  	mov	rsi, r10
   984  	cmp	r9, r8
   985  	je	.LBB7_8
   986  	.p2align	4, 0x90
   987  .LBB7_7:                                # =>This Inner Loop Header: Depth=1
   988  	mov	rsi, qword ptr [rdi + 8*r9]
   989  	cmp	rax, rsi
   990  	cmovae	rax, rsi
   991  	cmp	r10, rsi
   992  	cmova	rsi, r10
   993  	add	r9, 1
   994  	mov	r10, rsi
   995  	cmp	r8, r9
   996  	jne	.LBB7_7
   997  .LBB7_8:
   998  	mov	qword ptr [rcx], rsi
   999  	mov	qword ptr [rdx], rax
  1000  	mov	rsp, rbp
  1001  	pop	rbp
  1002  	vzeroupper
  1003  	ret
  1004  .Lfunc_end7:
  1005  	.size	uint64_max_min_avx2, .Lfunc_end7-uint64_max_min_avx2
  1006                                          # -- End function
  1007  	.ident	"Debian clang version 11.0.1-2"
  1008  	.section	".note.GNU-stack","",@progbits
  1009  	.addrsig