aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/X86/nofpclass.ll
blob: 55f0af904a38da67df297275eb4a7cb8cb271d4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=-sse2,-sse | FileCheck %s --check-prefix=NOSSE
; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=SSE

@gf = global { float, float } zeroinitializer, align 8

define void @f(<2 x float> noundef nofpclass(nan inf) %e.coerce) {
; NOSSE-LABEL: f:
; NOSSE:       # %bb.0: # %entry
; NOSSE-NEXT:    flds {{[0-9]+}}(%rsp)
; NOSSE-NEXT:    flds {{[0-9]+}}(%rsp)
; NOSSE-NEXT:    movq gf@GOTPCREL(%rip), %rax
; NOSSE-NEXT:    fstps 4(%rax)
; NOSSE-NEXT:    fstps (%rax)
; NOSSE-NEXT:    retq
;
; SSE-LABEL: f:
; SSE:       # %bb.0: # %entry
; SSE-NEXT:    movq gf@GOTPCREL(%rip), %rax
; SSE-NEXT:    movlps %xmm0, (%rax)
; SSE-NEXT:    retq
entry:
  store <2 x float> %e.coerce, ptr @gf, align 8
  ret void
}