use crate::*;
#[test]
fn test_vpscatterdd_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x10, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xA0, 0x04, 0x08, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpscatterdq_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC3, 0x00, 0x20, 0x00, 0x00, 0x62, 0xF2, 0xFD, 0x48, 0xA0, 0x04, 0x1B, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpscatterqd_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC1, 0x00, 0x30, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xA1, 0x04, 0x09, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpscatterqq_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC2, 0x00, 0x40, 0x00, 0x00, 0x62, 0xF2, 0xFD, 0x48, 0xA1, 0x04, 0x0A, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vscatterdps_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x50, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xA2, 0x04, 0x08, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vscatterdpd_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC3, 0x00, 0x60, 0x00, 0x00, 0x62, 0xF2, 0xFD, 0x48, 0xA2, 0x04, 0x1B, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vscatterqps_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC1, 0x00, 0x70, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xA3, 0x04, 0x09, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vscatterqpd_basic() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC2, 0x00, 0x80, 0x00, 0x00, 0x62, 0xF2, 0xFD, 0x48, 0xA3, 0x04, 0x0A, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpconflictd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0xC4, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpconflictq_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0xC4, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpconflictd_memory() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x10, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xC4, 0x00, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpcompressd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x8B, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpcompressq_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0x8B, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpcompressd_to_memory() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x20, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0x8B, 0x08, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vcompressps_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x8A, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vcompresspd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0x8A, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpexpandd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x89, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpexpandq_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0x89, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpexpandd_from_memory() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0x89, 0x00, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vexpandps_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x88, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vexpandpd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0x88, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpopcntd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x55, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vpopcntq_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFD, 0x48, 0x55, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vrangeps_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0x7D, 0x48, 0x50, 0xC1, 0x00, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vrangepd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0xFD, 0x48, 0x50, 0xC2, 0x01, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vrangess_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0x7D, 0x08, 0x51, 0xC1, 0x02, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vrangesd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0xFD, 0x08, 0x51, 0xC2, 0x03, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vreduceps_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0x7D, 0x48, 0x56, 0xC1, 0x00, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vreducepd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF3, 0xFD, 0x48, 0x56, 0xC2, 0x01, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vp2intersectd_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7F, 0x48, 0x68, 0xC1, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_vp2intersectq_basic() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0xFF, 0x48, 0x68, 0xC2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_compress_expand_roundtrip() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x8B, 0xC1, 0x62, 0xF2, 0x7D, 0x48, 0x89, 0xD0, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_scatter_gather_pattern() {
let mut emu = emu64();
let code = [
0x48, 0xC7, 0xC0, 0x00, 0x10, 0x00, 0x00, 0x62, 0xF2, 0x7D, 0x48, 0xA0, 0x04, 0x08, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_conflict_detection_workflow() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0xC4, 0xC1, 0x62, 0xF2, 0xFD, 0x48, 0xC4, 0xD2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}
#[test]
fn test_population_count_analysis() {
let mut emu = emu64();
let code = [
0x62, 0xF2, 0x7D, 0x48, 0x55, 0xC1, 0x62, 0xF2, 0xFD, 0x48, 0x55, 0xD2, 0xF4, ];
emu.load_code_bytes(&code);
emu.run(None).unwrap();
}