Test source: git
Source: <stdin>
-- 1. ModuleToFunctionPassAdaptor
-- 1. PassManager<Function> : Skipping NOP
-- 2. InstCombinePass
----------------------------------------
define float @ninf_user_select_inf(i1 %cond, float %x, float %y) {
#0:
%select = select i1 %cond, float %x, float inf
%ninf.user = fmul ninf float %y, %select
ret float %ninf.user
}
Transformation seems to be correct! (syntactically equal)
-- 3. InstCombinePass
----------------------------------------
define float @ninf_user_select_inf(i1 %cond, float %x, float %y) {
#0:
%select = select i1 %cond, float %x, float inf
%ninf.user = fmul ninf float %y, %select
ret float %ninf.user
}
Transformation seems to be correct! (syntactically equal)
-- 4. PassManager<Function> : Skipping NOP
-- 5. PassManager<Function> : Skipping NOP
-- 6. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_poison() nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct! (syntactically equal)
-- 7. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_poison() nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct! (syntactically equal)
-- 8. PassManager<Function> : Skipping NOP
-- 9. PassManager<Function> : Skipping NOP
-- 10. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_undef() nofpclass(516) {
#0:
ret float undef
}
Transformation seems to be correct! (syntactically equal)
-- 11. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_undef() nofpclass(516) {
#0:
ret float undef
}
Transformation seems to be correct! (syntactically equal)
-- 12. PassManager<Function> : Skipping NOP
-- 13. PassManager<Function> : Skipping NOP
-- 14. InstCombinePass
----------------------------------------
define float @ret_nofpclass_all_undef() nofpclass(1023) {
#0:
ret float undef
}
Transformation seems to be correct! (syntactically equal)
-- 15. InstCombinePass
----------------------------------------
define float @ret_nofpclass_all_undef() nofpclass(1023) {
#0:
ret float undef
}
=>
define float @ret_nofpclass_all_undef() nofpclass(1023) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 16. PassManager<Function> : Skipping NOP
-- 17. PassManager<Function> : Skipping NOP
-- 18. InstCombinePass
----------------------------------------
define float @undef_folds_to_poison_arg() nofpclass(3) {
#0:
%fence = float undef
ret float %fence
}
Transformation seems to be correct! (syntactically equal)
-- 19. InstCombinePass
----------------------------------------
define float @undef_folds_to_poison_arg() nofpclass(3) {
#0:
%fence = float undef
ret float %fence
}
=>
define float @undef_folds_to_poison_arg() nofpclass(3) {
#0:
%fence = float poison
ret float %fence
}
Transformation seems to be correct!
-- 20. PassManager<Function> : Skipping NOP
-- 21. PassManager<Function> : Skipping NOP
-- 22. InstCombinePass
----------------------------------------
define float @ret_nofpclass_all_var(float %arg) nofpclass(1023) {
#0:
ret float %arg
}
Transformation seems to be correct! (syntactically equal)
-- 23. InstCombinePass
----------------------------------------
define float @ret_nofpclass_all_var(float %arg) nofpclass(1023) {
#0:
ret float %arg
}
=>
define float @ret_nofpclass_all_var(float %arg) nofpclass(1023) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 24. PassManager<Function> : Skipping NOP
-- 25. PassManager<Function> : Skipping NOP
-- 26. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_all_var_vector(<2 x float> %arg) nofpclass(1023) {
#0:
ret <2 x float> %arg
}
Transformation seems to be correct! (syntactically equal)
-- 27. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_all_var_vector(<2 x float> %arg) nofpclass(1023) {
#0:
ret <2 x float> %arg
}
=>
define <2 x float> @ret_nofpclass_all_var_vector(<2 x float> %arg) nofpclass(1023) {
#0:
ret <2 x float> poison
}
Transformation seems to be correct!
-- 28. PassManager<Function> : Skipping NOP
-- 29. PassManager<Function> : Skipping NOP
-- 30. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__0() nofpclass(516) {
#0:
ret float 0.000000
}
Transformation seems to be correct! (syntactically equal)
-- 31. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__0() nofpclass(516) {
#0:
ret float 0.000000
}
Transformation seems to be correct! (syntactically equal)
-- 32. PassManager<Function> : Skipping NOP
-- 33. PassManager<Function> : Skipping NOP
-- 34. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__pinf() nofpclass(516) {
#0:
ret float inf
}
Transformation seems to be correct! (syntactically equal)
-- 35. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__pinf() nofpclass(516) {
#0:
ret float inf
}
=>
define float @ret_nofpclass_inf__pinf() nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 36. PassManager<Function> : Skipping NOP
-- 37. PassManager<Function> : Skipping NOP
-- 38. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__pinf() nofpclass(512) {
#0:
ret float inf
}
Transformation seems to be correct! (syntactically equal)
-- 39. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__pinf() nofpclass(512) {
#0:
ret float inf
}
=>
define float @ret_nofpclass_pinf__pinf() nofpclass(512) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 40. PassManager<Function> : Skipping NOP
-- 41. PassManager<Function> : Skipping NOP
-- 42. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__ninf() nofpclass(512) {
#0:
ret float -inf
}
Transformation seems to be correct! (syntactically equal)
-- 43. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__ninf() nofpclass(512) {
#0:
ret float -inf
}
Transformation seems to be correct! (syntactically equal)
-- 44. PassManager<Function> : Skipping NOP
-- 45. PassManager<Function> : Skipping NOP
-- 46. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__ninf() nofpclass(516) {
#0:
ret float -inf
}
Transformation seems to be correct! (syntactically equal)
-- 47. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__ninf() nofpclass(516) {
#0:
ret float -inf
}
=>
define float @ret_nofpclass_inf__ninf() nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 48. PassManager<Function> : Skipping NOP
-- 49. PassManager<Function> : Skipping NOP
-- 50. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_inf_lhs(i1 %cond, float nofpclass(516) %x, float %y) nofpclass(516) {
#0:
%select = select i1 %cond, float nofpclass(516) %x, float %y
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 51. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_inf_lhs(i1 %cond, float nofpclass(516) %x, float %y) nofpclass(516) {
#0:
%select = select i1 %cond, float nofpclass(516) %x, float %y
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 52. PassManager<Function> : Skipping NOP
-- 53. PassManager<Function> : Skipping NOP
-- 54. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_lhs(i1 %cond, float nofpclass(507) %x, float %y) nofpclass(516) {
#0:
%select = select i1 %cond, float nofpclass(507) %x, float %y
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 55. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_lhs(i1 %cond, float nofpclass(507) %x, float %y) nofpclass(516) {
#0:
%select = select i1 %cond, float nofpclass(507) %x, float %y
ret float %select
}
=>
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_lhs(i1 %cond, float nofpclass(507) %x, float %y) nofpclass(516) {
#0:
ret float %y
}
Transformation seems to be correct!
-- 56. PassManager<Function> : Skipping NOP
-- 57. PassManager<Function> : Skipping NOP
-- 58. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_rhs(i1 %cond, float %x, float nofpclass(507) %y) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float nofpclass(507) %y
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 59. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_rhs(i1 %cond, float %x, float nofpclass(507) %y) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float nofpclass(507) %y
ret float %select
}
=>
define float @ret_nofpclass_inf__select_nofpclass_arg_only_inf_rhs(i1 %cond, float %x, float nofpclass(507) %y) nofpclass(516) {
#0:
ret float %x
}
Transformation seems to be correct!
-- 60. PassManager<Function> : Skipping NOP
-- 61. PassManager<Function> : Skipping NOP
-- 62. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_lhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float %x
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 63. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_lhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float %x
ret float %select
}
=>
define float @ret_nofpclass_inf__select_pinf_lhs(i1 %cond, float %x) nofpclass(516) {
#0:
ret float %x
}
Transformation seems to be correct!
-- 64. PassManager<Function> : Skipping NOP
-- 65. PassManager<Function> : Skipping NOP
-- 66. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 67. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
ret float %select
}
=>
define float @ret_nofpclass_inf__select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
ret float %x
}
Transformation seems to be correct!
-- 68. PassManager<Function> : Skipping NOP
-- 69. PassManager<Function> : Skipping NOP
-- 70. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_or_ninf(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float -inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 71. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_pinf_or_ninf(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float -inf
ret float %select
}
=>
define float @ret_nofpclass_inf__select_pinf_or_ninf(i1 %cond, float %x) nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 72. PassManager<Function> : Skipping NOP
-- 73. PassManager<Function> : Skipping NOP
-- 74. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 75. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
=>
define float @ret_nofpclass_inf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(516) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 76. PassManager<Function> : Skipping NOP
-- 77. PassManager<Function> : Skipping NOP
-- 78. InstCombinePass
----------------------------------------
define float @ret_nofpclass_ninf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(4) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 79. InstCombinePass
----------------------------------------
define float @ret_nofpclass_ninf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(4) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
=>
define float @ret_nofpclass_ninf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(4) {
#0:
ret float inf
}
Transformation seems to be correct!
-- 80. PassManager<Function> : Skipping NOP
-- 81. PassManager<Function> : Skipping NOP
-- 82. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(512) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 83. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pinf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(512) {
#0:
%select = select i1 %cond, float -inf, float inf
ret float %select
}
=>
define float @ret_nofpclass_pinf__select_ninf_or_pinf(i1 %cond, float %x) nofpclass(512) {
#0:
ret float -inf
}
Transformation seems to be correct!
-- 84. PassManager<Function> : Skipping NOP
-- 85. PassManager<Function> : Skipping NOP
-- 86. InstCombinePass
----------------------------------------
define float @ret_nofpclass_zero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(96) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 87. InstCombinePass
----------------------------------------
define float @ret_nofpclass_zero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(96) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
=>
define float @ret_nofpclass_zero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(96) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 88. PassManager<Function> : Skipping NOP
-- 89. PassManager<Function> : Skipping NOP
-- 90. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(32) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 91. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(32) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
=>
define float @ret_nofpclass_nzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(32) {
#0:
ret float 0.000000
}
Transformation seems to be correct!
-- 92. PassManager<Function> : Skipping NOP
-- 93. PassManager<Function> : Skipping NOP
-- 94. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(64) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 95. InstCombinePass
----------------------------------------
define float @ret_nofpclass_pzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(64) {
#0:
%select = select i1 %cond, float 0.000000, float -0.000000
ret float %select
}
=>
define float @ret_nofpclass_pzero__select_pzero_or_nzero(i1 %cond, float %x) nofpclass(64) {
#0:
ret float -0.000000
}
Transformation seems to be correct!
-- 96. PassManager<Function> : Skipping NOP
-- 97. PassManager<Function> : Skipping NOP
-- 98. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, inf }, <2 x float> %x
ret <2 x float> %select
}
Transformation seems to be correct! (syntactically equal)
-- 99. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, inf }, <2 x float> %x
ret <2 x float> %select
}
=>
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
ret <2 x float> %x
}
Transformation seems to be correct!
-- 100. PassManager<Function> : Skipping NOP
-- 101. PassManager<Function> : Skipping NOP
-- 102. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector_undef(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, poison }, <2 x float> %x
ret <2 x float> %select
}
Transformation seems to be correct! (syntactically equal)
-- 103. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector_undef(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, poison }, <2 x float> %x
ret <2 x float> %select
}
=>
define <2 x float> @ret_nofpclass_inf__select_pinf_lhs_vector_undef(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
ret <2 x float> %x
}
Transformation seems to be correct!
-- 104. PassManager<Function> : Skipping NOP
-- 105. PassManager<Function> : Skipping NOP
-- 106. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_mixed_inf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, -inf }, <2 x float> %x
ret <2 x float> %select
}
Transformation seems to be correct! (syntactically equal)
-- 107. InstCombinePass
----------------------------------------
define <2 x float> @ret_nofpclass_inf__select_mixed_inf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
%select = select <2 x i1> %cond, <2 x float> { inf, -inf }, <2 x float> %x
ret <2 x float> %select
}
=>
define <2 x float> @ret_nofpclass_inf__select_mixed_inf_lhs_vector(<2 x i1> %cond, <2 x float> %x) nofpclass(516) {
#0:
ret <2 x float> %x
}
Transformation seems to be correct!
-- 108. PassManager<Function> : Skipping NOP
-- 109. PassManager<Function> : Skipping NOP
-- 110. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_multi_use_pinf_lhs(i1 %cond, float %x, ptr %ptr) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float %x
store float %select, ptr %ptr, align 4
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 111. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_multi_use_pinf_lhs(i1 %cond, float %x, ptr %ptr) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float %x
store float %select, ptr %ptr, align 4
ret float %select
}
=>
define float @ret_nofpclass_inf__select_multi_use_pinf_lhs(i1 %cond, float %x, ptr %ptr) nofpclass(516) {
#0:
%select = select i1 %cond, float inf, float %x
store float %select, ptr %ptr, align 4
ret float %x
}
Transformation seems to be correct!
-- 112. PassManager<Function> : Skipping NOP
-- 113. PassManager<Function> : Skipping NOP
-- 114. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_p0_lhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float 0.000000, float %x
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 115. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_p0_lhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float 0.000000, float %x
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 116. PassManager<Function> : Skipping NOP
-- 117. PassManager<Function> : Skipping NOP
-- 118. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_p0_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float 0.000000
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 119. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_p0_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float 0.000000
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 120. PassManager<Function> : Skipping NOP
-- 121. PassManager<Function> : Skipping NOP
-- 122. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_pinf_lhs(i1 %cond, float %x) nofpclass(3) {
#0:
%select = select i1 %cond, float inf, float %x
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 123. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_pinf_lhs(i1 %cond, float %x) nofpclass(3) {
#0:
%select = select i1 %cond, float inf, float %x
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 124. PassManager<Function> : Skipping NOP
-- 125. PassManager<Function> : Skipping NOP
-- 126. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_pinf_rhs(i1 %cond, float %x) nofpclass(3) {
#0:
%select = select i1 %cond, float %x, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 127. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_pinf_rhs(i1 %cond, float %x) nofpclass(3) {
#0:
%select = select i1 %cond, float %x, float inf
ret float %select
}
Transformation seems to be correct! (syntactically equal)
-- 128. PassManager<Function> : Skipping NOP
-- 129. PassManager<Function> : Skipping NOP
-- 130. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(519) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
Transformation seems to be correct! (syntactically equal)
-- 131. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(519) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
=>
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(519) {
#0:
ret float %x
}
Transformation seems to be correct!
-- 132. PassManager<Function> : Skipping NOP
-- 133. PassManager<Function> : Skipping NOP
-- 134. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(519) {
#0:
%select0 = select i1 %cond, float %x, float 0x7fc00000
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
Transformation seems to be correct! (syntactically equal)
-- 135. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(519) {
#0:
%select0 = select i1 %cond, float %x, float 0x7fc00000
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
=>
define float @ret_nofpclass_inf_nan__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(519) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 136. PassManager<Function> : Skipping NOP
-- 137. PassManager<Function> : Skipping NOP
-- 138. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_chain_inf_nan(i1 %cond, float %x) nofpclass(3) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
Transformation seems to be correct! (syntactically equal)
-- 139. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nan__select_chain_inf_nan(i1 %cond, float %x) nofpclass(3) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
=>
define float @ret_nofpclass_nan__select_chain_inf_nan(i1 %cond, float %x) nofpclass(3) {
#0:
%select1 = select i1 %cond, float inf, float %x
ret float %select1
}
Transformation seems to be correct!
-- 140. PassManager<Function> : Skipping NOP
-- 141. PassManager<Function> : Skipping NOP
-- 142. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(516) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
Transformation seems to be correct! (syntactically equal)
-- 143. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(516) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float inf, float %select0
ret float %select1
}
=>
define float @ret_nofpclass_inf__select_chain_inf_nan_0(i1 %cond, float %x) nofpclass(516) {
#0:
ret float %x
}
Transformation seems to be correct!
-- 144. PassManager<Function> : Skipping NOP
-- 145. PassManager<Function> : Skipping NOP
-- 146. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(516) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float %select0, float inf
ret float %select1
}
Transformation seems to be correct! (syntactically equal)
-- 147. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(516) {
#0:
%select0 = select i1 %cond, float 0x7fc00000, float %x
%select1 = select i1 %cond, float %select0, float inf
ret float %select1
}
=>
define float @ret_nofpclass_inf__select_chain_inf_nan_1(i1 %cond, float %x) nofpclass(516) {
#0:
ret float 0x7fc00000
}
Transformation seems to be correct!
-- 148. PassManager<Function> : Skipping NOP
-- 149. PassManager<Function> : Skipping NOP
-- 150. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fabs_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float -inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 151. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fabs_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float -inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_inf__fabs_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%#1 = fabs float %x
ret float %#1
}
Transformation seems to be correct!
-- 152. PassManager<Function> : Skipping NOP
-- 153. PassManager<Function> : Skipping NOP
-- 154. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 155. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_inf__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%#1 = fabs float %x
ret float %#1
}
Transformation seems to be correct!
-- 156. PassManager<Function> : Skipping NOP
-- 157. PassManager<Function> : Skipping NOP
-- 158. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_negatives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 159. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_negatives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_no_negatives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%#1 = fabs float %x
%fabs = select i1 %cond, float %#1, float inf
ret float %fabs
}
Transformation seems to be correct!
-- 160. PassManager<Function> : Skipping NOP
-- 161. PassManager<Function> : Skipping NOP
-- 162. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_positives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 163. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_positives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_no_positives__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%#1 = fabs float %x
ret float %#1
}
Transformation seems to be correct!
-- 164. PassManager<Function> : Skipping NOP
-- 165. PassManager<Function> : Skipping NOP
-- 166. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_negatives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 167. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_negatives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_no_negatives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
%#1 = fabs float %x
%fabs = select i1 %cond, float %#1, float inf
ret float %fabs
}
Transformation seems to be correct!
-- 168. PassManager<Function> : Skipping NOP
-- 169. PassManager<Function> : Skipping NOP
-- 170. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_positives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(963) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 171. InstCombinePass
----------------------------------------
define float @ret_nofpclass_no_positives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(963) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
ret float %fabs
}
=>
define float @ret_nofpclass_no_positives_nan__fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(963) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 172. PassManager<Function> : Skipping NOP
-- 173. PassManager<Function> : Skipping NOP
-- 174. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fneg_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float -inf
%fneg = fneg float %select
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 175. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fneg_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float -inf
%fneg = fneg float %select
ret float %fneg
}
=>
define float @ret_nofpclass_inf__fneg_select_ninf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%x.neg = fneg float %x
ret float %x.neg
}
Transformation seems to be correct!
-- 176. PassManager<Function> : Skipping NOP
-- 177. PassManager<Function> : Skipping NOP
-- 178. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_noinf___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(572) {
#0:
%select = select i1 %cond, float %x, float inf
%fneg = fneg float %select
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 179. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_noinf___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(572) {
#0:
%select = select i1 %cond, float %x, float inf
%fneg = fneg float %select
ret float %fneg
}
=>
define float @ret_nofpclass_nonegatives_noinf___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(572) {
#0:
%x.neg = fneg float %x
ret float %x.neg
}
Transformation seems to be correct!
-- 180. PassManager<Function> : Skipping NOP
-- 181. PassManager<Function> : Skipping NOP
-- 182. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_noinf___fneg_select_ninf_lhs(i1 %cond, float %x) nofpclass(572) {
#0:
%select = select i1 %cond, float -inf, float %x
%fneg = fneg float %select
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 183. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_noinf___fneg_select_ninf_lhs(i1 %cond, float %x) nofpclass(572) {
#0:
%select = select i1 %cond, float -inf, float %x
%fneg = fneg float %select
ret float %fneg
}
=>
define float @ret_nofpclass_nonegatives_noinf___fneg_select_ninf_lhs(i1 %cond, float %x) nofpclass(572) {
#0:
%x.neg = fneg float %x
ret float %x.neg
}
Transformation seems to be correct!
-- 184. PassManager<Function> : Skipping NOP
-- 185. PassManager<Function> : Skipping NOP
-- 186. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nopositives___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%select = select i1 %cond, float %x, float inf
%fneg = fneg float %select
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 187. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nopositives___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%select = select i1 %cond, float %x, float inf
%fneg = fneg float %select
ret float %fneg
}
=>
define float @ret_nofpclass_nopositives___fneg_select_pinf_rhs(i1 %cond, float %x) nofpclass(960) {
#0:
%x.neg = fneg float %x
%fneg = select i1 %cond, float %x.neg, float -inf
ret float %fneg
}
Transformation seems to be correct!
-- 188. PassManager<Function> : Skipping NOP
-- 189. PassManager<Function> : Skipping NOP
-- 190. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 191. InstCombinePass
----------------------------------------
define float @ret_nofpclass_inf__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
=>
define float @ret_nofpclass_inf__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(516) {
#0:
%#1 = fabs float %x
%.neg = fneg float %#1
ret float %.neg
}
Transformation seems to be correct!
-- 192. PassManager<Function> : Skipping NOP
-- 193. PassManager<Function> : Skipping NOP
-- 194. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 195. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
=>
define float @ret_nofpclass_nonegatives__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(60) {
#0:
%#1 = fabs float %x
%.neg = fneg float %#1
ret float %.neg
}
Transformation seems to be correct!
-- 196. PassManager<Function> : Skipping NOP
-- 197. PassManager<Function> : Skipping NOP
-- 198. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_nonan__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
Transformation seems to be correct! (syntactically equal)
-- 199. InstCombinePass
----------------------------------------
define float @ret_nofpclass_nonegatives_nonan__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
%select = select i1 %cond, float %x, float inf
%fabs = fabs float %select
%fneg = fneg float %fabs
ret float %fneg
}
=>
define float @ret_nofpclass_nonegatives_nonan__fneg_fabs_select_pinf_rhs(i1 %cond, float %x) nofpclass(63) {
#0:
ret float poison
}
Transformation seems to be correct!
-- 200. PassManager<Function> : Skipping NOP
-- 201. PassManager<Function> : Skipping NOP
-- 202. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive(float nofpclass(63) %always.positive) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 203. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive(float nofpclass(63) %always.positive) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
ret float %fabs
}
=>
define float @fabs_src_known_positive(float nofpclass(63) %always.positive) nofpclass(1) {
#0:
ret float nofpclass(63) %always.positive
}
Transformation seems to be correct!
-- 204. PassManager<Function> : Skipping NOP
-- 205. PassManager<Function> : Skipping NOP
-- 206. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 207. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 208. PassManager<Function> : Skipping NOP
-- 209. PassManager<Function> : Skipping NOP
-- 210. InstCombinePass
----------------------------------------
define float @fabs_nnan_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(1) {
#0:
%fabs = fabs nnan float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 211. InstCombinePass
----------------------------------------
define float @fabs_nnan_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(1) {
#0:
%fabs = fabs nnan float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
=>
define float @fabs_nnan_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(1) {
#0:
ret float nofpclass(60) %always.positive.or.nan
}
Transformation seems to be correct!
-- 212. PassManager<Function> : Skipping NOP
-- 213. PassManager<Function> : Skipping NOP
-- 214. InstCombinePass
----------------------------------------
define float @ret_nonan_fabs_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 215. InstCombinePass
----------------------------------------
define float @ret_nonan_fabs_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
ret float %fabs
}
=>
define float @ret_nonan_fabs_src_known_positive_or_nan(float nofpclass(60) %always.positive.or.nan) nofpclass(3) {
#0:
ret float nofpclass(60) %always.positive.or.nan
}
Transformation seems to be correct!
-- 216. PassManager<Function> : Skipping NOP
-- 217. PassManager<Function> : Skipping NOP
-- 218. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 219. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
=>
define float @fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
store float nofpclass(63) %always.positive, ptr %ptr, align 4
ret float nofpclass(63) %always.positive
}
Transformation seems to be correct!
-- 220. PassManager<Function> : Skipping NOP
-- 221. PassManager<Function> : Skipping NOP
-- 222. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_except_negzero_multiple_uses(float nofpclass(31) %always.positive.or.nzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(31) %always.positive.or.nzero
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 223. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_except_negzero_multiple_uses(float nofpclass(31) %always.positive.or.nzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(31) %always.positive.or.nzero
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 224. PassManager<Function> : Skipping NOP
-- 225. PassManager<Function> : Skipping NOP
-- 226. InstCombinePass
----------------------------------------
define float @fabs_nsz_src_known_positive_except_negzero(float nofpclass(31) %always.positive.or.nzero) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(31) %always.positive.or.nzero
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 227. InstCombinePass
----------------------------------------
define float @fabs_nsz_src_known_positive_except_negzero(float nofpclass(31) %always.positive.or.nzero) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(31) %always.positive.or.nzero
ret float %fabs
}
=>
define float @fabs_nsz_src_known_positive_except_negzero(float nofpclass(31) %always.positive.or.nzero) nofpclass(1) {
#0:
ret float nofpclass(31) %always.positive.or.nzero
}
Transformation seems to be correct!
-- 228. PassManager<Function> : Skipping NOP
-- 229. PassManager<Function> : Skipping NOP
-- 230. InstCombinePass
----------------------------------------
define float @fabs_nsz_src_known_positive_except_negzero_multiple_uses(float nofpclass(31) %always.positive.or.nzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(31) %always.positive.or.nzero
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 231. InstCombinePass
----------------------------------------
define float @fabs_nsz_src_known_positive_except_negzero_multiple_uses(float nofpclass(31) %always.positive.or.nzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(31) %always.positive.or.nzero
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
=>
define float @fabs_nsz_src_known_positive_except_negzero_multiple_uses(float nofpclass(31) %always.positive.or.nzero, ptr %ptr) nofpclass(1) {
#0:
store float nofpclass(31) %always.positive.or.nzero, ptr %ptr, align 4
ret float nofpclass(31) %always.positive.or.nzero
}
Transformation seems to be correct!
-- 232. PassManager<Function> : Skipping NOP
-- 233. PassManager<Function> : Skipping NOP
-- 234. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 235. InstCombinePass
----------------------------------------
define float @fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 236. PassManager<Function> : Skipping NOP
-- 237. PassManager<Function> : Skipping NOP
-- 238. InstCombinePass
----------------------------------------
define float @ret_nonan_fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 239. InstCombinePass
----------------------------------------
define float @ret_nonan_fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
=>
define float @ret_nonan_fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float nofpclass(60) %always.positive.or.nan
}
Transformation seems to be correct!
-- 240. PassManager<Function> : Skipping NOP
-- 241. PassManager<Function> : Skipping NOP
-- 242. InstCombinePass
----------------------------------------
define float @ret_fabs_nnan_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs nnan float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 243. InstCombinePass
----------------------------------------
define float @ret_fabs_nnan_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs nnan float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
=>
define float @ret_fabs_nnan_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs nnan float nofpclass(60) %always.positive.or.nan
store float %fabs, ptr %ptr, align 4
ret float nofpclass(60) %always.positive.or.nan
}
Transformation seems to be correct!
-- 244. PassManager<Function> : Skipping NOP
-- 245. PassManager<Function> : Skipping NOP
-- 246. InstCombinePass
----------------------------------------
define float @ret_fabs_ninf_src_known_positive_or_ninf_or_nan_multiple_uses(float nofpclass(59) %always.positive.or.ninf, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs ninf float nofpclass(59) %always.positive.or.ninf
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 247. InstCombinePass
----------------------------------------
define float @ret_fabs_ninf_src_known_positive_or_ninf_or_nan_multiple_uses(float nofpclass(59) %always.positive.or.ninf, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs ninf float nofpclass(59) %always.positive.or.ninf
store float %fabs, ptr %ptr, align 4
ret float %fabs
}
=>
define float @ret_fabs_ninf_src_known_positive_or_ninf_or_nan_multiple_uses(float nofpclass(59) %always.positive.or.ninf, ptr %ptr) nofpclass(16) {
#0:
%fabs = fabs ninf float nofpclass(59) %always.positive.or.ninf
store float %fabs, ptr %ptr, align 4
ret float nofpclass(59) %always.positive.or.ninf
}
Transformation seems to be correct!
-- 248. PassManager<Function> : Skipping NOP
-- 249. PassManager<Function> : Skipping NOP
-- 250. InstCombinePass
----------------------------------------
define float @fabs_src_known_negative(float nofpclass(963) %always.negative) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(963) %always.negative
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 251. InstCombinePass
----------------------------------------
define float @fabs_src_known_negative(float nofpclass(963) %always.negative) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(963) %always.negative
ret float %fabs
}
Transformation seems to be correct! (syntactically equal)
-- 252. PassManager<Function> : Skipping NOP
-- 253. PassManager<Function> : Skipping NOP
-- 254. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_multiple_uses(float nofpclass(963) %always.negative, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(963) %always.negative
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 255. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_multiple_uses(float nofpclass(963) %always.negative, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(963) %always.negative
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @fneg_fabs_src_known_negative_multiple_uses(float nofpclass(963) %always.negative, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(963) %always.negative
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(963) %always.negative
}
Transformation seems to be correct!
-- 256. PassManager<Function> : Skipping NOP
-- 257. PassManager<Function> : Skipping NOP
-- 258. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 259. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(63) %always.positive
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @fneg_fabs_src_known_positive_multiple_uses(float nofpclass(63) %always.positive, ptr %ptr) nofpclass(1) {
#0:
%fneg.fabs = fneg float nofpclass(63) %always.positive
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct!
-- 260. PassManager<Function> : Skipping NOP
-- 261. PassManager<Function> : Skipping NOP
-- 262. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 263. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 264. PassManager<Function> : Skipping NOP
-- 265. PassManager<Function> : Skipping NOP
-- 266. InstCombinePass
----------------------------------------
define float @ret_nonan_fneg_fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 267. InstCombinePass
----------------------------------------
define float @ret_nonan_fneg_fabs_src_known_positive_or_nan_multiple_uses(float nofpclass(60) %always.positive.or.nan, ptr %ptr) nofpclass(3) {
#0:
%fabs = fabs float nofpclass(60) %always.positive.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 268. PassManager<Function> : Skipping NOP
-- 269. PassManager<Function> : Skipping NOP
-- 270. InstCombinePass
----------------------------------------
define float @fneg_nnan_fabs_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg nnan float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 271. InstCombinePass
----------------------------------------
define float @fneg_nnan_fabs_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg nnan float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @fneg_nnan_fabs_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg nnan float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(960) %always.negative.or.nan
}
Transformation seems to be correct!
-- 272. PassManager<Function> : Skipping NOP
-- 273. PassManager<Function> : Skipping NOP
-- 274. InstCombinePass
----------------------------------------
define float @fneg_fabs_nnan_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nnan float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 275. InstCombinePass
----------------------------------------
define float @fneg_fabs_nnan_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nnan float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @fneg_fabs_nnan_src_known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nnan float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(960) %always.negative.or.nan
}
Transformation seems to be correct!
-- 276. PassManager<Function> : Skipping NOP
-- 277. PassManager<Function> : Skipping NOP
-- 278. InstCombinePass
----------------------------------------
define float @fneg_fabs_nofpclass_nan_src__known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 279. InstCombinePass
----------------------------------------
define float @fneg_fabs_nofpclass_nan_src__known_negative_or_nan_multiple_uses(float nofpclass(960) %always.negative.or.nan, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(960) %always.negative.or.nan
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 280. PassManager<Function> : Skipping NOP
-- 281. PassManager<Function> : Skipping NOP
-- 282. InstCombinePass
----------------------------------------
define float @ret_fneg_ninf_fabs_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg ninf float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 283. InstCombinePass
----------------------------------------
define float @ret_fneg_ninf_fabs_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg ninf float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @ret_fneg_ninf_fabs_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg ninf float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(451) %negative.or.neginf
}
Transformation seems to be correct!
-- 284. PassManager<Function> : Skipping NOP
-- 285. PassManager<Function> : Skipping NOP
-- 286. InstCombinePass
----------------------------------------
define float @ret_fneg_fabs_ninf_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs ninf float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 287. InstCombinePass
----------------------------------------
define float @ret_fneg_fabs_ninf_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs ninf float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @ret_fneg_fabs_ninf_src_known_negative_or_posinf_multiple_uses(float nofpclass(451) %negative.or.neginf, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs ninf float nofpclass(451) %negative.or.neginf
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(451) %negative.or.neginf
}
Transformation seems to be correct!
-- 288. PassManager<Function> : Skipping NOP
-- 289. PassManager<Function> : Skipping NOP
-- 290. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_or_poszero_multiple_uses(float nofpclass(899) %always.negative.or.pzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 291. InstCombinePass
----------------------------------------
define float @fneg_fabs_src_known_negative_or_poszero_multiple_uses(float nofpclass(899) %always.negative.or.pzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 292. PassManager<Function> : Skipping NOP
-- 293. PassManager<Function> : Skipping NOP
-- 294. InstCombinePass
----------------------------------------
define float @fneg_fabs_nsz_src_known_negative_or_poszero(float nofpclass(899) %always.negative.or.pzero) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 295. InstCombinePass
----------------------------------------
define float @fneg_fabs_nsz_src_known_negative_or_poszero(float nofpclass(899) %always.negative.or.pzero) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 296. PassManager<Function> : Skipping NOP
-- 297. PassManager<Function> : Skipping NOP
-- 298. InstCombinePass
----------------------------------------
define float @fneg_fabs_nsz_src_known_negative_or_poszero_multiple_uses(float nofpclass(899) %always.negative.or.pzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
Transformation seems to be correct! (syntactically equal)
-- 299. InstCombinePass
----------------------------------------
define float @fneg_fabs_nsz_src_known_negative_or_poszero_multiple_uses(float nofpclass(899) %always.negative.or.pzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float %fneg.fabs
}
=>
define float @fneg_fabs_nsz_src_known_negative_or_poszero_multiple_uses(float nofpclass(899) %always.negative.or.pzero, ptr %ptr) nofpclass(1) {
#0:
%fabs = fabs nsz float nofpclass(899) %always.negative.or.pzero
%fneg.fabs = fneg float %fabs
store float %fneg.fabs, ptr %ptr, align 4
ret float nofpclass(899) %always.negative.or.pzero
}
Transformation doesn't verify! (unsound)
ERROR: Mismatch in memory
Example:
float nofpclass(899) %always.negative.or.pzero = #x00000000 (+0.0)
ptr %ptr = pointer(non-local, block_id=1, offset=0) / Address=#x04
Source:
float %fabs = #x00000000 (+0.0)
float %fneg.fabs = #x80000000 (-0.0)
SOURCE MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 > size: 0 align: 4 alloc type: 0 alive: false address: #x00
Block 1 > size: 8 align: 1 alloc type: 4 alive: true address: #x04
Target:
float %fabs = #x00000000 (+0.0)
float %fneg.fabs = #x80000000 (-0.0)
TARGET MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 > size: 0 align: 4 alloc type: 0 alive: false address: #x00
Block 1 > size: 8 align: 1 alloc type: 4 alive: true address: #x04
Mismatch in pointer(non-local, block_id=1, offset=0)
Source value: #x80000000
Target value: #x80000000
Pass: InstCombinePass
Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-S' '-passes=instcombine' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats'
Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_WH3ntSLZ_14nU.bc"
------------------- SMT STATS -------------------
Num queries: 285
Num invalid: 0
Num skips: 0
Num trivial: 203 (41.6%)
Num timeout: 0 (0.0%)
Num errors: 0 (0.0%)
Num SAT: 140 (49.1%)
Num UNSAT: 145 (50.9%)
Alive2: Transform doesn't verify; aborting!
Transforms/InstCombine/simplify-demanded-fpclass.ll' FAILED ******************** Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 /home/nlopes/alive2/build/opt-alive.sh -S -passes=instcombine < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll # executed command: /home/nlopes/alive2/build/opt-alive.sh -S -passes=instcombine # .---command stderr------------ # `----------------------------- # error: command failed with exit status: 1 # executed command: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll # `----------------------------- # error: command failed with exit status: 2 --