// File: dsharlet[P]array/test/shuffle.cpp
// Function: nda::internal::test_shuffle_1_of_3_body()
TEST(shuffle_1_of_3) {
  auto t = std::make_tuple(0, 1, 2);
  auto shuffled0 = shuffle<0>(t);
  auto shuffled1 = shuffle<1>(t);
  auto shuffled2 = shuffle<2>(t);
  ASSERT_EQ(shuffled0, std::make_tuple(0));
  ASSERT_EQ(shuffled1, std::make_tuple(1));
  ASSERT_EQ(shuffled2, std::make_tuple(2));

  auto t0 = unshuffle<0>(shuffled0);
  auto t1 = unshuffle<1>(shuffled1);
  auto t2 = unshuffle<2>(shuffled2);
  ASSERT_EQ(t0, shuffled0);
  ASSERT_EQ(t1, shuffled1);
  ASSERT_EQ(t2, shuffled2);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xce0, %rsp            # imm = 0xCE0
movl $0x0, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movl $0x2, -0x18(%rbp)
leaq -0xc(%rbp), %rdi
movq %rdi, -0xae8(%rbp)
leaq -0x10(%rbp), %rsi
leaq -0x14(%rbp), %rdx
leaq -0x18(%rbp), %rcx
callq 0x10c050
movq -0xae8(%rbp), %rsi
leaq -0x1c(%rbp), %rdi
movq %rdi, -0xae0(%rbp)
callq 0x1c33c0
movq -0xae8(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x1c3400
movq -0xae8(%rbp), %rsi
leaq -0x24(%rbp), %rdi
callq 0x1c3440
movl $0x0, -0x1c0(%rbp)
leaq -0x1bc(%rbp), %rdi
movq %rdi, -0xad8(%rbp)
leaq -0x1c0(%rbp), %rsi
callq 0x1c34b0
movq -0xae0(%rbp), %rdi
movq -0xad8(%rbp), %rsi
callq 0x1c3480
movb %al, -0xac9(%rbp)
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0xac8(%rbp)
callq 0x33b0
movq -0xac8(%rbp), %rdx
leaq 0x3debe(%rip), %rsi     # 0x1fce7f
leaq -0x1e0(%rbp), %rdi
callq 0x10a90
jmp 0x1befcf
movb -0xac9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x1b8(%rbp), %rdi
leaq -0x1e0(%rbp), %rdx
callq 0x10f80
jmp 0x1beff0
leaq 0x1d7ee(%rip), %rsi     # 0x1dc7e5
leaq -0x1b8(%rbp), %rdi
callq 0x34320
movq %rax, -0xaf0(%rbp)
jmp 0x1bf00c
movq -0xaf0(%rbp), %rdi
leaq 0x3decb(%rip), %rsi     # 0x1fcee5
callq 0x344d0
movq %rax, -0xaf8(%rbp)
jmp 0x1bf028
movq -0xaf8(%rbp), %rdi
leaq 0x21776(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xb00(%rbp)
jmp 0x1bf044
movq -0xb00(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xb08(%rbp)
jmp 0x1bf05d
movq -0xb08(%rbp), %rdi
leaq 0x1d77a(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xb10(%rbp)
jmp 0x1bf079
movq -0xb10(%rbp), %rdi
leaq 0x3de05(%rip), %rsi     # 0x1fce8c
callq 0x34b60
movq %rax, -0xb18(%rbp)
jmp 0x1bf095
movq -0xb18(%rbp), %rdi
leaq 0x21709(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xb20(%rbp)
jmp 0x1bf0b1
movl $0x0, -0x1fc(%rbp)
leaq -0x1f8(%rbp), %rdi
leaq -0x1fc(%rbp), %rsi
callq 0x1c34b0
jmp 0x1bf0d0
movq -0xb20(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xb28(%rbp)
jmp 0x1bf0ec
movq -0xb28(%rbp), %rdi
leaq 0x37381(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf101
leaq -0x1b8(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf10f
leaq -0x1e0(%rbp), %rdi
callq 0x3100
leaq -0x1e1(%rbp), %rdi
callq 0x3290
movl $0x1, -0x398(%rbp)
leaq -0x394(%rbp), %rdi
movq %rdi, -0xb40(%rbp)
leaq -0x398(%rbp), %rsi
callq 0x1c34b0
movq -0xb40(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x1c3480
movb %al, -0xb31(%rbp)
leaq -0x3b9(%rbp), %rdi
movq %rdi, -0xb30(%rbp)
callq 0x33b0
movq -0xb30(%rbp), %rdx
leaq 0x3dd1d(%rip), %rsi     # 0x1fce9f
leaq -0x3b8(%rbp), %rdi
callq 0x10a90
jmp 0x1bf190
movb -0xb31(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x390(%rbp), %rdi
leaq -0x3b8(%rbp), %rdx
callq 0x10f80
jmp 0x1bf1b1
leaq 0x1d62d(%rip), %rsi     # 0x1dc7e5
leaq -0x390(%rbp), %rdi
callq 0x34320
movq %rax, -0xb48(%rbp)
jmp 0x1bf1cd
movq -0xb48(%rbp), %rdi
leaq 0x3dd1d(%rip), %rsi     # 0x1fcef8
callq 0x344d0
movq %rax, -0xb50(%rbp)
jmp 0x1bf1e9
movq -0xb50(%rbp), %rdi
leaq 0x215b5(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xb58(%rbp)
jmp 0x1bf205
movq -0xb58(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xb60(%rbp)
jmp 0x1bf21e
movq -0xb60(%rbp), %rdi
leaq 0x1d5b9(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xb68(%rbp)
jmp 0x1bf23a
movq -0xb68(%rbp), %rdi
leaq 0x3dc64(%rip), %rsi     # 0x1fceac
callq 0x34b60
movq %rax, -0xb70(%rbp)
jmp 0x1bf256
movq -0xb70(%rbp), %rdi
leaq 0x21548(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xb78(%rbp)
jmp 0x1bf272
movl $0x1, -0x3c4(%rbp)
leaq -0x3c0(%rbp), %rdi
leaq -0x3c4(%rbp), %rsi
callq 0x1c34b0
jmp 0x1bf291
movq -0xb78(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xb80(%rbp)
jmp 0x1bf2ad
movq -0xb80(%rbp), %rdi
leaq 0x371c0(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf2c2
leaq -0x390(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf2d0
leaq -0x3b8(%rbp), %rdi
callq 0x3100
leaq -0x3b9(%rbp), %rdi
callq 0x3290
movl $0x2, -0x560(%rbp)
leaq -0x55c(%rbp), %rdi
movq %rdi, -0xb98(%rbp)
leaq -0x560(%rbp), %rsi
callq 0x1c34b0
movq -0xb98(%rbp), %rsi
leaq -0x24(%rbp), %rdi
callq 0x1c3480
movb %al, -0xb89(%rbp)
leaq -0x581(%rbp), %rdi
movq %rdi, -0xb88(%rbp)
callq 0x33b0
movq -0xb88(%rbp), %rdx
leaq 0x3db7c(%rip), %rsi     # 0x1fcebf
leaq -0x580(%rbp), %rdi
callq 0x10a90
jmp 0x1bf351
movb -0xb89(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x558(%rbp), %rdi
leaq -0x580(%rbp), %rdx
callq 0x10f80
jmp 0x1bf372
leaq 0x1d46c(%rip), %rsi     # 0x1dc7e5
leaq -0x558(%rbp), %rdi
callq 0x34320
movq %rax, -0xba0(%rbp)
jmp 0x1bf38e
movq -0xba0(%rbp), %rdi
leaq 0x3db6f(%rip), %rsi     # 0x1fcf0b
callq 0x344d0
movq %rax, -0xba8(%rbp)
jmp 0x1bf3aa
movq -0xba8(%rbp), %rdi
leaq 0x213f4(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xbb0(%rbp)
jmp 0x1bf3c6
movq -0xbb0(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xbb8(%rbp)
jmp 0x1bf3df
movq -0xbb8(%rbp), %rdi
leaq 0x1d3f8(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xbc0(%rbp)
jmp 0x1bf3fb
movq -0xbc0(%rbp), %rdi
leaq 0x3dac3(%rip), %rsi     # 0x1fcecc
callq 0x34b60
movq %rax, -0xbc8(%rbp)
jmp 0x1bf417
movq -0xbc8(%rbp), %rdi
leaq 0x21387(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xbd0(%rbp)
jmp 0x1bf433
movl $0x2, -0x58c(%rbp)
leaq -0x588(%rbp), %rdi
leaq -0x58c(%rbp), %rsi
callq 0x1c34b0
jmp 0x1bf452
movq -0xbd0(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xbd8(%rbp)
jmp 0x1bf46e
movq -0xbd8(%rbp), %rdi
leaq 0x36fff(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf483
leaq -0x558(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf491
leaq -0x580(%rbp), %rdi
callq 0x3100
leaq -0x581(%rbp), %rdi
callq 0x3290
leaq -0x590(%rbp), %rdi
movq %rdi, -0xbf8(%rbp)
leaq -0x1c(%rbp), %rsi
movq %rsi, -0xbf0(%rbp)
callq 0x1c3520
leaq -0x594(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1c3550
leaq -0x598(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x1c3580
movq -0xbf8(%rbp), %rdi
movq -0xbf0(%rbp), %rsi
callq 0x1c3480
movb %al, -0xbe1(%rbp)
leaq -0x749(%rbp), %rdi
movq %rdi, -0xbe0(%rbp)
callq 0x33b0
movq -0xbe0(%rbp), %rdx
leaq 0x3d9be(%rip), %rsi     # 0x1fcedf
leaq -0x748(%rbp), %rdi
callq 0x10a90
jmp 0x1bf52f
movb -0xbe1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x728(%rbp), %rdi
leaq -0x748(%rbp), %rdx
callq 0x10f80
jmp 0x1bf550
leaq 0x1d28e(%rip), %rsi     # 0x1dc7e5
leaq -0x728(%rbp), %rdi
callq 0x34320
movq %rax, -0xc00(%rbp)
jmp 0x1bf56c
movq -0xc00(%rbp), %rdi
leaq 0x3d975(%rip), %rsi     # 0x1fceef
callq 0x34840
movq %rax, -0xc08(%rbp)
jmp 0x1bf588
movq -0xc08(%rbp), %rdi
leaq 0x21216(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xc10(%rbp)
jmp 0x1bf5a4
movq -0xc10(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xc18(%rbp)
jmp 0x1bf5c0
movq -0xc18(%rbp), %rdi
leaq 0x1d217(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xc20(%rbp)
jmp 0x1bf5dc
movq -0xc20(%rbp), %rdi
leaq 0x3d8fb(%rip), %rsi     # 0x1fcee5
callq 0x344d0
movq %rax, -0xc28(%rbp)
jmp 0x1bf5f8
movq -0xc28(%rbp), %rdi
leaq 0x211a6(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xc30(%rbp)
jmp 0x1bf614
movq -0xc30(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xc38(%rbp)
jmp 0x1bf62d
movq -0xc38(%rbp), %rdi
leaq 0x36e40(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf642
leaq -0x728(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf650
leaq -0x748(%rbp), %rdi
callq 0x3100
leaq -0x749(%rbp), %rdi
callq 0x3290
leaq -0x594(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1c3480
movb %al, -0xc41(%rbp)
leaq -0x901(%rbp), %rdi
movq %rdi, -0xc40(%rbp)
callq 0x33b0
movq -0xc40(%rbp), %rdx
leaq 0x3d853(%rip), %rsi     # 0x1fcef2
leaq -0x900(%rbp), %rdi
callq 0x10a90
jmp 0x1bf6ad
movb -0xc41(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x8e0(%rbp), %rdi
leaq -0x900(%rbp), %rdx
callq 0x10f80
jmp 0x1bf6ce
leaq 0x1d110(%rip), %rsi     # 0x1dc7e5
leaq -0x8e0(%rbp), %rdi
callq 0x34320
movq %rax, -0xc50(%rbp)
jmp 0x1bf6ea
movq -0xc50(%rbp), %rdi
leaq 0x3d80a(%rip), %rsi     # 0x1fcf02
callq 0x34840
movq %rax, -0xc58(%rbp)
jmp 0x1bf706
movq -0xc58(%rbp), %rdi
leaq 0x21098(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xc60(%rbp)
jmp 0x1bf722
movq -0xc60(%rbp), %rdi
leaq -0x594(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xc68(%rbp)
jmp 0x1bf73e
movq -0xc68(%rbp), %rdi
leaq 0x1d099(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xc70(%rbp)
jmp 0x1bf75a
movq -0xc70(%rbp), %rdi
leaq 0x3d790(%rip), %rsi     # 0x1fcef8
callq 0x344d0
movq %rax, -0xc78(%rbp)
jmp 0x1bf776
movq -0xc78(%rbp), %rdi
leaq 0x21028(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xc80(%rbp)
jmp 0x1bf792
movq -0xc80(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xc88(%rbp)
jmp 0x1bf7ab
movq -0xc88(%rbp), %rdi
leaq 0x36cc2(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf7c0
leaq -0x8e0(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf7ce
leaq -0x900(%rbp), %rdi
callq 0x3100
leaq -0x901(%rbp), %rdi
callq 0x3290
leaq -0x598(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x1c3480
movb %al, -0xc91(%rbp)
leaq -0xab9(%rbp), %rdi
movq %rdi, -0xc90(%rbp)
callq 0x33b0
movq -0xc90(%rbp), %rdx
leaq 0x3d6e8(%rip), %rsi     # 0x1fcf05
leaq -0xab8(%rbp), %rdi
callq 0x10a90
jmp 0x1bf82b
movb -0xc91(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xa98(%rbp), %rdi
leaq -0xab8(%rbp), %rdx
callq 0x10f80
jmp 0x1bf84c
leaq 0x1cf92(%rip), %rsi     # 0x1dc7e5
leaq -0xa98(%rbp), %rdi
callq 0x34320
movq %rax, -0xca0(%rbp)
jmp 0x1bf868
movq -0xca0(%rbp), %rdi
leaq 0x3d69f(%rip), %rsi     # 0x1fcf15
callq 0x34840
movq %rax, -0xca8(%rbp)
jmp 0x1bf884
movq -0xca8(%rbp), %rdi
leaq 0x20f1a(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xcb0(%rbp)
jmp 0x1bf8a0
movq -0xcb0(%rbp), %rdi
leaq -0x598(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xcb8(%rbp)
jmp 0x1bf8bc
movq -0xcb8(%rbp), %rdi
leaq 0x1cf1b(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0xcc0(%rbp)
jmp 0x1bf8d8
movq -0xcc0(%rbp), %rdi
leaq 0x3d625(%rip), %rsi     # 0x1fcf0b
callq 0x344d0
movq %rax, -0xcc8(%rbp)
jmp 0x1bf8f4
movq -0xcc8(%rbp), %rdi
leaq 0x20eaa(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0xcd0(%rbp)
jmp 0x1bf910
movq -0xcd0(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x1c34e0
movq %rax, -0xcd8(%rbp)
jmp 0x1bf929
movq -0xcd8(%rbp), %rdi
leaq 0x36b44(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1bf93e
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf94c
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
addq $0xce0, %rsp            # imm = 0xCE0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bf9c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bf9b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x10ff0
jmp 0x1bf9b5
jmp 0x1bf9b7
leaq -0x1e0(%rbp), %rdi
callq 0x3100
leaq -0x1e1(%rbp), %rdi
callq 0x3290
jmp 0x1bfbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfa2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfa1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x10ff0
jmp 0x1bfa1c
jmp 0x1bfa1e
leaq -0x3b8(%rbp), %rdi
callq 0x3100
leaq -0x3b9(%rbp), %rdi
callq 0x3290
jmp 0x1bfbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfa91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfa85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0x558(%rbp), %rdi
callq 0x10ff0
jmp 0x1bfa83
jmp 0x1bfa85
leaq -0x580(%rbp), %rdi
callq 0x3100
leaq -0x581(%rbp), %rdi
callq 0x3290
jmp 0x1bfbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfaf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfaec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x10ff0
jmp 0x1bfaea
jmp 0x1bfaec
leaq -0x748(%rbp), %rdi
callq 0x3100
leaq -0x749(%rbp), %rdi
callq 0x3290
jmp 0x1bfbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfb5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfb53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0x8e0(%rbp), %rdi
callq 0x10ff0
jmp 0x1bfb51
jmp 0x1bfb53
leaq -0x900(%rbp), %rdi
callq 0x3100
leaq -0x901(%rbp), %rdi
callq 0x3290
jmp 0x1bfbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfbc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
jmp 0x1bfbb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f0(%rbp)
movl %eax, -0x1f4(%rbp)
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x1bfbb5
jmp 0x1bfbb7
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
movq -0x1f0(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nopw %cs:(%rax,%rax)