xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/x86-interrupt_vzeroupper.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -verify-machineinstrs -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4*9880d681SAndroid Build Coastguard Worker;; Checks that interrupt handler code does not call "vzeroupper" instruction
5*9880d681SAndroid Build Coastguard Worker;; before iret.
6*9880d681SAndroid Build Coastguard Worker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; CHECK: vzeroupper
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: call
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vzeroupper
11*9880d681SAndroid Build Coastguard Worker; CHECK: iret
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine x86_intrcc void @foo(i8* %frame) {
14*9880d681SAndroid Build Coastguard Worker  call void @bar()
15*9880d681SAndroid Build Coastguard Worker  ret void
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdeclare void @bar()
19*9880d681SAndroid Build Coastguard Worker
20