1## Check that BOLT inserts trap instruction at entry to functions that use AVX-512. 2## Check that AVX-512 instruction is updated correctly when -trap-avx512=0 is passed. 3 4RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-unknown -o %t.o \ 5RUN: %S/Inputs/avx512.s 6RUN: ld.lld %t.o -o %t -q 7RUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t | \ 8RUN: FileCheck %s --check-prefix=CHECK-DIS-NO-TRAP 9 10RUN: llvm-bolt %t --trap-avx512=1 -o %t.bolt --lite=0 2>&1 | FileCheck %s 11RUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t.bolt | \ 12RUN: FileCheck %s --check-prefix=CHECK-DIS 13 14RUN: llvm-bolt %t --trap-avx512=0 -o %t.bolt --lite=0 15RUN: llvm-objdump -d --disassemble-symbols=use_avx512 %t.bolt | \ 16RUN: FileCheck %s --check-prefix=CHECK-DIS-NO-TRAP 17 18CHECK: BOLT-WARNING: 1 function will trap on entry 19 20## Check that we have two ud2 instructions - one per entry. 21CHECK-DIS: use_avx512 22CHECK-DIS-NEXT: ud2 23CHECK-DIS-NEXT: ud2 24 25## Check that we generate correct AVX-512 26CHECK-DIS-NO-TRAP: use_avx512 27CHECK-DIS-NO-TRAP: 62 e2 f5 70 2c da vscalefpd 28