1*11791ae7SSayhaan Siddiqui## Check that BOLT inserts trap instruction at entry to functions that use AVX-512. 2*11791ae7SSayhaan Siddiqui## Check that AVX-512 instruction is updated correctly when -trap-avx512=0 is passed. 38331f75eSAmir Ayupov 4da766ceaSAmir AyupovRUN: llvm-mc -filetype=obj -triple=x86_64-unknown-unknown -o %t.o \ 5da766ceaSAmir AyupovRUN: %S/Inputs/avx512.s 6da766ceaSAmir AyupovRUN: ld.lld %t.o -o %t -q 7da766ceaSAmir AyupovRUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t | \ 8da766ceaSAmir AyupovRUN: FileCheck %s --check-prefix=CHECK-DIS-NO-TRAP 9da766ceaSAmir Ayupov 10d648aa1bSMaksim PanchenkoRUN: llvm-bolt %t --trap-avx512=1 -o %t.bolt --lite=0 2>&1 | FileCheck %s 11da766ceaSAmir AyupovRUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t.bolt | \ 12da766ceaSAmir AyupovRUN: FileCheck %s --check-prefix=CHECK-DIS 13da766ceaSAmir Ayupov 14d648aa1bSMaksim PanchenkoRUN: llvm-bolt %t --trap-avx512=0 -o %t.bolt --lite=0 15da766ceaSAmir AyupovRUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t.bolt | \ 16da766ceaSAmir AyupovRUN: FileCheck %s --check-prefix=CHECK-DIS-NO-TRAP 178331f75eSAmir Ayupov 188331f75eSAmir AyupovCHECK: BOLT-WARNING: 1 function will trap on entry 198331f75eSAmir Ayupov 20*11791ae7SSayhaan Siddiqui## Check that we have two ud2 instructions - one per entry. 218331f75eSAmir AyupovCHECK-DIS: use_avx512 228331f75eSAmir AyupovCHECK-DIS-NEXT: ud2 238331f75eSAmir AyupovCHECK-DIS-NEXT: ud2 248331f75eSAmir Ayupov 25*11791ae7SSayhaan Siddiqui## Check that we generate correct AVX-512 268331f75eSAmir AyupovCHECK-DIS-NO-TRAP: use_avx512 278331f75eSAmir AyupovCHECK-DIS-NO-TRAP: 62 e2 f5 70 2c da vscalefpd 28