@@ -235,3 +235,44 @@ define i1 @dune_mem(ptr %xp, ptr %yp) {
235235 %1 = fcmp une double %x , %y
236236 ret i1 %1
237237}
238+
239+ define i32 @PR118606 (x86_fp80 %val1 ) #0 {
240+ ; X64-LABEL: PR118606:
241+ ; X64: # %bb.0: # %entry
242+ ; X64-NEXT: fldt {{[0-9]+}}(%rsp)
243+ ; X64-NEXT: fldz
244+ ; X64-NEXT: fucomi %st(1), %st
245+ ; X64-NEXT: fstp %st(1)
246+ ; X64-NEXT: fld1
247+ ; X64-NEXT: fcmovne %st(1), %st
248+ ; X64-NEXT: fcmovu %st(1), %st
249+ ; X64-NEXT: fucompi %st(1), %st
250+ ; X64-NEXT: fstp %st(0)
251+ ; X64-NEXT: xorl %eax, %eax
252+ ; X64-NEXT: retq
253+ ;
254+ ; X86-LABEL: PR118606:
255+ ; X86: # %bb.0: # %entry
256+ ; X86-NEXT: fldt {{[0-9]+}}(%esp)
257+ ; X86-NEXT: fldz
258+ ; X86-NEXT: fucomi %st(1), %st
259+ ; X86-NEXT: fstp %st(1)
260+ ; X86-NEXT: fld1
261+ ; X86-NEXT: fcmovne %st(1), %st
262+ ; X86-NEXT: fcmovu %st(1), %st
263+ ; X86-NEXT: fucompi %st(1), %st
264+ ; X86-NEXT: fstp %st(0)
265+ ; X86-NEXT: xorl %eax, %eax
266+ ; X86-NEXT: retl
267+ entry:
268+ %cmp8 = fcmp oeq x86_fp80 %val1 , 0xK00000000000000000000
269+ %0 = select i1 %cmp8 , x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK00000000000000000000
270+ %cmp64 = fcmp ogt x86_fp80 %0 , 0xK00000000000000000000
271+ br i1 %cmp64 , label %if.then66 , label %if.end70
272+
273+ if.then66: ; preds = %entry
274+ ret i32 0
275+
276+ if.end70: ; preds = %entry
277+ ret i32 0
278+ }
0 commit comments