select-crash.ll 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. ; RUN: opt < %s -instcombine -S | FileCheck %s
  2. ; Formerly crashed, PR8490.
  3. define fastcc double @gimp_operation_color_balance_map(float %value, double %highlights) nounwind readnone inlinehint {
  4. entry:
  5. ; CHECK: gimp_operation_color_balance_map
  6. ; CHECK: fsub double -0.000000
  7. %conv = fpext float %value to double
  8. %div = fdiv double %conv, 1.600000e+01
  9. %add = fadd double %div, 1.000000e+00
  10. %div1 = fdiv double 1.000000e+00, %add
  11. %sub = fsub double 1.075000e+00, %div1
  12. %sub24 = fsub double 1.000000e+00, %sub
  13. %add26 = fadd double %sub, 1.000000e+00
  14. %cmp86 = fcmp ogt double %highlights, 0.000000e+00
  15. %cond90 = select i1 %cmp86, double %sub24, double %add26
  16. %mul91 = fmul double %highlights, %cond90
  17. %add94 = fadd double undef, %mul91
  18. ret double %add94
  19. }
  20. ; PR10180: same crash, but with vectors
  21. define <4 x float> @foo(i1 %b, <4 x float> %x, <4 x float> %y, <4 x float> %z) {
  22. ; CHECK-LABEL: @foo(
  23. ; CHECK: fsub <4 x float>
  24. ; CHECK: select
  25. ; CHECK: fadd <4 x float>
  26. %a = fadd <4 x float> %x, %y
  27. %sub = fsub <4 x float> %x, %z
  28. %sel = select i1 %b, <4 x float> %a, <4 x float> %sub
  29. ret <4 x float> %sel
  30. }