llvm/llvm/test/MC/X86/AMX/x86-64-amx-tile-att.s

// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s | FileCheck %s
// some AMX instruction must use SIB.

// CHECK: tilerelease
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
          tilerelease

// CHECK: tilezero %tmm6
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
          tilezero %tmm6

// CHECK: tilezero %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
          tilezero %tmm3

// CHECK: tilerelease
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
          tilerelease

// CHECK: tilezero %tmm6
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
          tilezero %tmm6

// CHECK: tilezero %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
          tilezero %tmm3

// CHECK: ldtilecfg  268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x78,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
          ldtilecfg  268435456(%rbp,%r14,8)

// CHECK: ldtilecfg  291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x78,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
          ldtilecfg  291(%r8,%rax,4)

// CHECK: ldtilecfg  (%rip)
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x05,0x00,0x00,0x00,0x00]
          ldtilecfg  (%rip)

// CHECK: ldtilecfg  -2048(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
          ldtilecfg  -2048(,%rbp,2)

// CHECK: sttilecfg  268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x79,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
          sttilecfg  268435456(%rbp,%r14,8)

// CHECK: sttilecfg  291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x79,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
          sttilecfg  291(%r8,%rax,4)

// CHECK: sttilecfg  (%rip)
// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x05,0x00,0x00,0x00,0x00]
          sttilecfg  (%rip)

// CHECK: sttilecfg  -2048(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
          sttilecfg  -2048(,%rbp,2)

// CHECK: tileloadd 268435456(%rbp,%r14,8), %tmm6
// CHECK: encoding: [0xc4,0xa2,0x7b,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tileloadd 268435456(%rbp,%r14,8), %tmm6

// CHECK: tileloadd 291(%r8,%rax,4), %tmm3
// CHECK: encoding: [0xc4,0xc2,0x7b,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tileloadd 291(%r8,%rax,4), %tmm3

// CHECK: tileloadd 64(%rbx), %tmm4
// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x64,0x23,0x40]
          tileloadd 64(%rbx), %tmm4

// CHECK: tileloadd -32(,%rbp,2), %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tileloadd -32(,%rbp,2), %tmm3

// CHECK: tileloaddt1 268435456(%rbp,%r14,8), %tmm6
// CHECK: encoding: [0xc4,0xa2,0x79,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tileloaddt1 268435456(%rbp,%r14,8), %tmm6

// CHECK: tileloaddt1 291(%r8,%rax,4), %tmm3
// CHECK: encoding: [0xc4,0xc2,0x79,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tileloaddt1 291(%r8,%rax,4), %tmm3

// CHECK: tileloaddt1 -32(,%rbp,2), %tmm3
// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tileloaddt1 -32(,%rbp,2), %tmm3

// CHECK: tileloaddt1 16(%rbp), %tmm6
// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x74,0x25,0x10]
          tileloaddt1 16(%rbp), %tmm6

// CHECK: tilerelease
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
          tilerelease

// CHECK: tilestored %tmm6, 268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x7a,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tilestored %tmm6, 268435456(%rbp,%r14,8)

// CHECK: tilestored %tmm3, 291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tilestored %tmm3, 291(%r8,%rax,4)

// CHECK: tilestored %tmm3, -32(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x7a,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tilestored %tmm3, -32(,%rbp,2)

// CHECK: tilestored %tmm3, (%r8)
// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x1c,0x20]
          tilestored %tmm3, (%r8)

// CHECK: tilezero %tmm6
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
          tilezero %tmm6

// CHECK: tilezero %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
          tilezero %tmm3

// CHECK: ldtilecfg  268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x78,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
          ldtilecfg  268435456(%rbp,%r14,8)

// CHECK: ldtilecfg  291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x78,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
          ldtilecfg  291(%r8,%rax,4)

// CHECK: ldtilecfg  (%rip)
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x05,0x00,0x00,0x00,0x00]
          ldtilecfg  (%rip)

// CHECK: ldtilecfg  -2048(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
          ldtilecfg  -2048(,%rbp,2)

// CHECK: sttilecfg  268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x79,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
          sttilecfg  268435456(%rbp,%r14,8)

// CHECK: sttilecfg  291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x79,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
          sttilecfg  291(%r8,%rax,4)

// CHECK: sttilecfg  (%rip)
// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x05,0x00,0x00,0x00,0x00]
          sttilecfg  (%rip)

// CHECK: sttilecfg  -2048(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
          sttilecfg  -2048(,%rbp,2)

// CHECK: tileloadd 268435456(%rbp,%r14,8), %tmm6
// CHECK: encoding: [0xc4,0xa2,0x7b,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tileloadd 268435456(%rbp,%r14,8), %tmm6

// CHECK: tileloadd 291(%r8,%rax,4), %tmm3
// CHECK: encoding: [0xc4,0xc2,0x7b,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tileloadd 291(%r8,%rax,4), %tmm3

// CHECK: tileloadd -32(,%rbp,2), %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tileloadd -32(,%rbp,2), %tmm3

// CHECK: tileloaddt1 268435456(%rbp,%r14,8), %tmm6
// CHECK: encoding: [0xc4,0xa2,0x79,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tileloaddt1 268435456(%rbp,%r14,8), %tmm6

// CHECK: tileloaddt1 291(%r8,%rax,4), %tmm3
// CHECK: encoding: [0xc4,0xc2,0x79,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tileloaddt1 291(%r8,%rax,4), %tmm3

// CHECK: tileloaddt1 -32(,%rbp,2), %tmm3
// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tileloaddt1 -32(,%rbp,2), %tmm3

// CHECK: tilerelease
// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
          tilerelease

// CHECK: tilestored %tmm6, 268435456(%rbp,%r14,8)
// CHECK: encoding: [0xc4,0xa2,0x7a,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
          tilestored %tmm6, 268435456(%rbp,%r14,8)

// CHECK: tilestored %tmm3, 291(%r8,%rax,4)
// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
          tilestored %tmm3, 291(%r8,%rax,4)

// CHECK: tilestored %tmm3, -32(,%rbp,2)
// CHECK: encoding: [0xc4,0xe2,0x7a,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
          tilestored %tmm3, -32(,%rbp,2)

// CHECK: tilezero %tmm6
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
          tilezero %tmm6

// CHECK: tilezero %tmm3
// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
          tilezero %tmm3