llvm/llvm/test/MC/X86/SHA-32.s

// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s

// CHECK: sha1msg1 -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
sha1msg1 -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1msg1 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
sha1msg1 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1msg1 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x8a,0xf0,0x1c,0xf0,0x1c]        
sha1msg1 485498096(%edx), %xmm1 

// CHECK: sha1msg1 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x0d,0xf0,0x1c,0xf0,0x1c]        
sha1msg1 485498096, %xmm1 

// CHECK: sha1msg1 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x4c,0x02,0x40]        
sha1msg1 64(%edx,%eax), %xmm1 

// CHECK: sha1msg1 (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0x0a]        
sha1msg1 (%edx), %xmm1 

// CHECK: sha1msg1 %xmm1, %xmm1 
// CHECK: encoding: [0x0f,        
sha1msg1 %xmm1, %xmm1 

// CHECK: sha1msg1 %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc9,0xc9]        
sha1msg1 %xmm1, %xmm1 

// CHECK: sha1msg2 -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
sha1msg2 -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1msg2 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
sha1msg2 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1msg2 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x8a,0xf0,0x1c,0xf0,0x1c]        
sha1msg2 485498096(%edx), %xmm1 

// CHECK: sha1msg2 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x0d,0xf0,0x1c,0xf0,0x1c]        
sha1msg2 485498096, %xmm1 

// CHECK: sha1msg2 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x4c,0x02,0x40]        
sha1msg2 64(%edx,%eax), %xmm1 

// CHECK: sha1msg2 (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0x0a]        
sha1msg2 (%edx), %xmm1 

// CHECK: sha1msg2 %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xca,0xc9]        
sha1msg2 %xmm1, %xmm1 

// CHECK: sha1nexte -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
sha1nexte -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1nexte 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
sha1nexte 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1nexte 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x8a,0xf0,0x1c,0xf0,0x1c]        
sha1nexte 485498096(%edx), %xmm1 

// CHECK: sha1nexte 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x0d,0xf0,0x1c,0xf0,0x1c]        
sha1nexte 485498096, %xmm1 

// CHECK: sha1nexte 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x4c,0x02,0x40]        
sha1nexte 64(%edx,%eax), %xmm1 

// CHECK: sha1nexte (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0x0a]        
sha1nexte (%edx), %xmm1 

// CHECK: sha1nexte %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xc8,0xc9]        
sha1nexte %xmm1, %xmm1 

// CHECK: sha1rnds4 $0, -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
sha1rnds4 $0, -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1rnds4 $0, 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
sha1rnds4 $0, 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha1rnds4 $0, 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x8a,0xf0,0x1c,0xf0,0x1c,0x00]       
sha1rnds4 $0, 485498096(%edx), %xmm1 

// CHECK: sha1rnds4 $0, 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x0d,0xf0,0x1c,0xf0,0x1c,0x00]       
sha1rnds4 $0, 485498096, %xmm1 

// CHECK: sha1rnds4 $0, 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x4c,0x02,0x40,0x00]       
sha1rnds4 $0, 64(%edx,%eax), %xmm1 

// CHECK: sha1rnds4 $0, (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0x0a,0x00]       
sha1rnds4 $0, (%edx), %xmm1 

// CHECK: sha1rnds4 $0, %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x3a,0xcc,0xc9,0x00]       
sha1rnds4 $0, %xmm1, %xmm1 

// CHECK: sha256msg1 -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
sha256msg1 -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256msg1 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
sha256msg1 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256msg1 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x8a,0xf0,0x1c,0xf0,0x1c]        
sha256msg1 485498096(%edx), %xmm1 

// CHECK: sha256msg1 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x0d,0xf0,0x1c,0xf0,0x1c]        
sha256msg1 485498096, %xmm1 

// CHECK: sha256msg1 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x4c,0x02,0x40]        
sha256msg1 64(%edx,%eax), %xmm1 

// CHECK: sha256msg1 (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0x0a]        
sha256msg1 (%edx), %xmm1 

// CHECK: sha256msg1 %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcc,0xc9]        
sha256msg1 %xmm1, %xmm1 

// CHECK: sha256msg2 -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
sha256msg2 -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256msg2 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
sha256msg2 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256msg2 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x8a,0xf0,0x1c,0xf0,0x1c]        
sha256msg2 485498096(%edx), %xmm1 

// CHECK: sha256msg2 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x0d,0xf0,0x1c,0xf0,0x1c]        
sha256msg2 485498096, %xmm1 

// CHECK: sha256msg2 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x4c,0x02,0x40]        
sha256msg2 64(%edx,%eax), %xmm1 

// CHECK: sha256msg2 (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0x0a]        
sha256msg2 (%edx), %xmm1 

// CHECK: sha256msg2 %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcd,0xc9]        
sha256msg2 %xmm1, %xmm1 

// CHECK: sha256rnds2 %xmm0, -485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x8c,0x82,0x10,0xe3,0x0f,0xe3]       
sha256rnds2 %xmm0, -485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256rnds2 %xmm0, 485498096(%edx,%eax,4), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]       
sha256rnds2 %xmm0, 485498096(%edx,%eax,4), %xmm1 

// CHECK: sha256rnds2 %xmm0, 485498096(%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x8a,0xf0,0x1c,0xf0,0x1c]       
sha256rnds2 %xmm0, 485498096(%edx), %xmm1 

// CHECK: sha256rnds2 %xmm0, 485498096, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x0d,0xf0,0x1c,0xf0,0x1c]       
sha256rnds2 %xmm0, 485498096, %xmm1 

// CHECK: sha256rnds2 %xmm0, 64(%edx,%eax), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x4c,0x02,0x40]       
sha256rnds2 %xmm0, 64(%edx,%eax), %xmm1 

// CHECK: sha256rnds2 %xmm0, (%edx), %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0x0a]       
sha256rnds2 %xmm0, (%edx), %xmm1 

// CHECK: sha256rnds2 %xmm0, %xmm1, %xmm1 
// CHECK: encoding: [0x0f,0x38,0xcb,0xc9]       
sha256rnds2 %xmm0, %xmm1, %xmm1