Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/X86/extractelement-fp.ll
Show First 20 Lines • Show All 153 Lines • ▼ Show 20 Lines | |||||
; If we do the fcmp transform late, make sure we have the right types. | ; If we do the fcmp transform late, make sure we have the right types. | ||||
; https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13700 | ; https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13700 | ||||
define void @extsetcc(<4 x float> %x) { | define void @extsetcc(<4 x float> %x) { | ||||
; CHECK-LABEL: extsetcc: | ; CHECK-LABEL: extsetcc: | ||||
; CHECK: # %bb.0: | ; CHECK: # %bb.0: | ||||
; CHECK-NEXT: vxorps %xmm1, %xmm1, %xmm1 | ; CHECK-NEXT: vxorps %xmm1, %xmm1, %xmm1 | ||||
; CHECK-NEXT: vcmpnleps %xmm0, %xmm1, %xmm0 | ; CHECK-NEXT: vucomiss %xmm1, %xmm0 | ||||
; CHECK-NEXT: vextractps $0, %xmm0, %eax | ; CHECK-NEXT: setb (%rax) | ||||
; CHECK-NEXT: andl $1, %eax | |||||
; CHECK-NEXT: movb %al, (%rax) | |||||
; CHECK-NEXT: retq | ; CHECK-NEXT: retq | ||||
%cmp = fcmp ult <4 x float> %x, zeroinitializer | %cmp = fcmp ult <4 x float> %x, zeroinitializer | ||||
%sext = sext <4 x i1> %cmp to <4 x i32> | %sext = sext <4 x i1> %cmp to <4 x i32> | ||||
%e = extractelement <4 x i1> %cmp, i1 0 | %e = extractelement <4 x i1> %cmp, i1 0 | ||||
store i1 %e, i1* undef | store i1 %e, i1* undef | ||||
ret void | ret void | ||||
} | } | ||||
▲ Show 20 Lines • Show All 462 Lines • Show Last 20 Lines |