Test source: git
Comments: LLVM PR49080
Source: <stdin> -- 1. ModuleToFunctionPassAdaptor ERROR: Unsupported instruction: store volatile double %D, ptr undef, align 8 ERROR: Unsupported instruction: store volatile double %D, ptr undef, align 8 -- 1. PassManager<llvm::Function> : Skipping NOP -- 2. InstCombinePass ---------------------------------------- declare double @floor(double) define float @test_shrink_libcall_floor(float %C) { #0: %D = fpext float %C to double %E = floor double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 3. InstCombinePass ---------------------------------------- declare double @floor(double) define float @test_shrink_libcall_floor(float %C) { #0: %D = fpext float %C to double %E = floor double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_floor(float %C) { #0: %#1 = floor float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 4. PassManager<llvm::Function> : Skipping NOP -- 5. PassManager<llvm::Function> : Skipping NOP -- 6. InstCombinePass ---------------------------------------- declare double @ceil(double) define float @test_shrink_libcall_ceil(float %C) { #0: %D = fpext float %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 7. InstCombinePass ---------------------------------------- declare double @ceil(double) define float @test_shrink_libcall_ceil(float %C) { #0: %D = fpext float %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_ceil(float %C) { #0: %#1 = ceil float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 8. PassManager<llvm::Function> : Skipping NOP -- 9. PassManager<llvm::Function> : Skipping NOP -- 10. InstCombinePass ---------------------------------------- declare double @round(double) define float @test_shrink_libcall_round(float %C) { #0: %D = fpext float %C to double %E = round double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 11. InstCombinePass ---------------------------------------- declare double @round(double) define float @test_shrink_libcall_round(float %C) { #0: %D = fpext float %C to double %E = round double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_round(float %C) { #0: %#1 = round float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 12. PassManager<llvm::Function> : Skipping NOP -- 13. PassManager<llvm::Function> : Skipping NOP -- 14. InstCombinePass ---------------------------------------- declare double @roundeven(double) define float @test_shrink_libcall_roundeven(float %C) { #0: %D = fpext float %C to double %E = roundeven double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 15. InstCombinePass ---------------------------------------- declare double @roundeven(double) define float @test_shrink_libcall_roundeven(float %C) { #0: %D = fpext float %C to double %E = roundeven double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_roundeven(float %C) { #0: %#1 = roundeven float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 16. PassManager<llvm::Function> : Skipping NOP -- 17. PassManager<llvm::Function> : Skipping NOP -- 18. InstCombinePass ---------------------------------------- declare double @nearbyint(double) define float @test_shrink_libcall_nearbyint(float %C) { #0: %D = fpext float %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 19. InstCombinePass ---------------------------------------- declare double @nearbyint(double) define float @test_shrink_libcall_nearbyint(float %C) { #0: %D = fpext float %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_nearbyint(float %C) { #0: %#1 = nearbyint float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 20. PassManager<llvm::Function> : Skipping NOP -- 21. PassManager<llvm::Function> : Skipping NOP -- 22. InstCombinePass ---------------------------------------- declare double @trunc(double) define float @test_shrink_libcall_trunc(float %C) { #0: %D = fpext float %C to double %E = trunc double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 23. InstCombinePass ---------------------------------------- declare double @trunc(double) define float @test_shrink_libcall_trunc(float %C) { #0: %D = fpext float %C to double %E = trunc double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_trunc(float %C) { #0: %#1 = trunc float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 24. PassManager<llvm::Function> : Skipping NOP -- 25. PassManager<llvm::Function> : Skipping NOP -- 26. InstCombinePass ---------------------------------------- declare double @fabs(double) define float @test_shrink_libcall_fabs(float %C) { #0: %D = fpext float %C to double %E = fabs double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 27. InstCombinePass ---------------------------------------- declare double @fabs(double) define float @test_shrink_libcall_fabs(float %C) { #0: %D = fpext float %C to double %E = fabs double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_fabs(float %C) { #0: %#1 = fabs float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 28. PassManager<llvm::Function> : Skipping NOP -- 29. PassManager<llvm::Function> : Skipping NOP -- 30. InstCombinePass ---------------------------------------- declare double @fabs(double) define float @test_shrink_libcall_fabs_fast(float %C) { #0: %D = fpext float %C to double %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 31. InstCombinePass ---------------------------------------- declare double @fabs(double) define float @test_shrink_libcall_fabs_fast(float %C) { #0: %D = fpext float %C to double %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_libcall_fabs_fast(float %C) { #0: %#1 = fabs fast float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 32. PassManager<llvm::Function> : Skipping NOP -- 33. PassManager<llvm::Function> : Skipping NOP -- 34. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_ceil(float %C) { #0: %D = fpext float %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 35. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_ceil(float %C) { #0: %D = fpext float %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_ceil(float %C) { #0: %#1 = ceil float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 36. PassManager<llvm::Function> : Skipping NOP -- 37. PassManager<llvm::Function> : Skipping NOP -- 38. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs(float %C) { #0: %D = fpext float %C to double %E = fabs double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 39. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs(float %C) { #0: %D = fpext float %C to double %E = fabs double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_fabs(float %C) { #0: %#1 = fabs float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 40. PassManager<llvm::Function> : Skipping NOP -- 41. PassManager<llvm::Function> : Skipping NOP -- 42. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_floor(float %C) { #0: %D = fpext float %C to double %E = floor double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 43. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_floor(float %C) { #0: %D = fpext float %C to double %E = floor double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_floor(float %C) { #0: %#1 = floor float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 44. PassManager<llvm::Function> : Skipping NOP -- 45. PassManager<llvm::Function> : Skipping NOP -- 46. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_nearbyint(float %C) { #0: %D = fpext float %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 47. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_nearbyint(float %C) { #0: %D = fpext float %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_nearbyint(float %C) { #0: %#1 = nearbyint float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 48. PassManager<llvm::Function> : Skipping NOP -- 49. PassManager<llvm::Function> : Skipping NOP -- 50. InstCombinePass ---------------------------------------- define half @test_shrink_intrin_rint(half %C) { #0: %D = fpext half %C to float %E = rint float %D %F = fptrunc float %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 51. InstCombinePass ---------------------------------------- define half @test_shrink_intrin_rint(half %C) { #0: %D = fpext half %C to float %E = rint float %D %F = fptrunc float %E to half ret half %F } => define half @test_shrink_intrin_rint(half %C) { #0: %#1 = rint half %C ret half %#1 } Transformation seems to be correct! -- 52. PassManager<llvm::Function> : Skipping NOP -- 53. PassManager<llvm::Function> : Skipping NOP -- 54. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_round(float %C) { #0: %D = fpext float %C to double %E = round double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 55. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_round(float %C) { #0: %D = fpext float %C to double %E = round double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_round(float %C) { #0: %#1 = round float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 56. PassManager<llvm::Function> : Skipping NOP -- 57. PassManager<llvm::Function> : Skipping NOP -- 58. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_roundeven(float %C) { #0: %D = fpext float %C to double %E = roundeven double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 59. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_roundeven(float %C) { #0: %D = fpext float %C to double %E = roundeven double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_roundeven(float %C) { #0: %#1 = roundeven float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 60. PassManager<llvm::Function> : Skipping NOP -- 61. PassManager<llvm::Function> : Skipping NOP -- 62. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_trunc(float %C) { #0: %D = fpext float %C to double %E = trunc double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 63. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_trunc(float %C) { #0: %D = fpext float %C to double %E = trunc double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_trunc(float %C) { #0: %#1 = trunc float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 64. PassManager<llvm::Function> : Skipping NOP -- 65. PassManager<llvm::Function> : Skipping NOP -- 66. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_ceil_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = ceil <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 67. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_ceil_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = ceil <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 68. PassManager<llvm::Function> : Skipping NOP -- 69. PassManager<llvm::Function> : Skipping NOP -- 70. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_fabs_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = fabs <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 71. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_fabs_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = fabs <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } => declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_fabs_multi_use(<2 x float> %C) { #0: %#1 = fabs <2 x float> %C %E = fpext <2 x float> %#1 to <2 x double> call void @use_v2f64(<2 x double> %E) ret <2 x float> %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 72. PassManager<llvm::Function> : Skipping NOP -- 73. PassManager<llvm::Function> : Skipping NOP -- 74. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_floor_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = floor <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 75. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_floor_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = floor <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 76. PassManager<llvm::Function> : Skipping NOP -- 77. PassManager<llvm::Function> : Skipping NOP -- 78. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_nearbyint_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = nearbyint <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 79. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_nearbyint_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = nearbyint <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 80. PassManager<llvm::Function> : Skipping NOP -- 81. PassManager<llvm::Function> : Skipping NOP -- 82. InstCombinePass ---------------------------------------- declare void @use_v2f32(<2 x float>) define <2 x half> @test_shrink_intrin_rint_multi_use(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x float> %E = rint <2 x float> %D %F = fptrunc <2 x float> %E to <2 x half> call void @use_v2f32(<2 x float> %E) ret <2 x half> %F } Transformation seems to be correct! (syntactically equal) -- 83. InstCombinePass ---------------------------------------- declare void @use_v2f32(<2 x float>) define <2 x half> @test_shrink_intrin_rint_multi_use(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x float> %E = rint <2 x float> %D %F = fptrunc <2 x float> %E to <2 x half> call void @use_v2f32(<2 x float> %E) ret <2 x half> %F } => declare void @use_v2f32(<2 x float>) define <2 x half> @test_shrink_intrin_rint_multi_use(<2 x half> %C) { #0: %#1 = rint <2 x half> %C %E = fpext <2 x half> %#1 to <2 x float> call void @use_v2f32(<2 x float> %E) ret <2 x half> %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 84. PassManager<llvm::Function> : Skipping NOP -- 85. PassManager<llvm::Function> : Skipping NOP -- 86. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_round_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = round <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 87. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_round_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = round <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 88. PassManager<llvm::Function> : Skipping NOP -- 89. PassManager<llvm::Function> : Skipping NOP -- 90. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_roundeven_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = roundeven <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 91. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_roundeven_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = roundeven <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) call void @use_v2f64(<2 x double> %E) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 92. PassManager<llvm::Function> : Skipping NOP -- 93. PassManager<llvm::Function> : Skipping NOP -- 94. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_trunc_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = trunc <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 95. InstCombinePass ---------------------------------------- declare void @use_v2f64(<2 x double>) define <2 x float> @test_shrink_intrin_trunc_multi_use(<2 x float> %C) { #0: %D = fpext <2 x float> %C to <2 x double> %E = trunc <2 x double> %D %F = fptrunc <2 x double> %E to <2 x float> call void @use_v2f64(<2 x double> %D) ret <2 x float> %F } Transformation seems to be correct! (syntactically equal) -- 96. PassManager<llvm::Function> : Skipping NOP -- 97. PassManager<llvm::Function> : Skipping NOP -- 98. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_fast(float %C) { #0: %D = fpext float %C to double %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 99. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_fast(float %C) { #0: %D = fpext float %C to double %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_fabs_fast(float %C) { #0: %#1 = fabs fast float %C ret float %#1 } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 100. PassManager<llvm::Function> : Skipping NOP -- 101. PassManager<llvm::Function> : Skipping NOP -- 102. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_floor(double %D) { #0: %E = floor double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 103. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_floor(double %D) { #0: %E = floor double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 104. PassManager<llvm::Function> : Skipping NOP -- 105. PassManager<llvm::Function> : Skipping NOP -- 106. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_ceil(double %D) { #0: %E = ceil double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 107. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_ceil(double %D) { #0: %E = ceil double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 108. PassManager<llvm::Function> : Skipping NOP -- 109. PassManager<llvm::Function> : Skipping NOP -- 110. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_round(double %D) { #0: %E = round double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 111. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_round(double %D) { #0: %E = round double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 112. PassManager<llvm::Function> : Skipping NOP -- 113. PassManager<llvm::Function> : Skipping NOP -- 114. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_roundeven(double %D) { #0: %E = roundeven double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 115. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_roundeven(double %D) { #0: %E = roundeven double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 116. PassManager<llvm::Function> : Skipping NOP -- 117. PassManager<llvm::Function> : Skipping NOP -- 118. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_nearbyint(double %D) { #0: %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 119. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_nearbyint(double %D) { #0: %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 120. PassManager<llvm::Function> : Skipping NOP -- 121. PassManager<llvm::Function> : Skipping NOP -- 122. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_trunc(double %D) { #0: %E = trunc double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 123. InstCombinePass ---------------------------------------- define float @test_no_shrink_intrin_trunc(double %D) { #0: %E = trunc double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 124. PassManager<llvm::Function> : Skipping NOP -- 125. PassManager<llvm::Function> : Skipping NOP -- 126. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_double_src(double %D) { #0: %E = fabs double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 127. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_double_src(double %D) { #0: %E = fabs double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_fabs_double_src(double %D) { #0: %#1 = fptrunc double %D to float %F = fabs float %#1 ret float %F } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 128. PassManager<llvm::Function> : Skipping NOP -- 129. PassManager<llvm::Function> : Skipping NOP -- 130. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_fast_double_src(double %D) { #0: %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 131. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_fabs_fast_double_src(double %D) { #0: %E = fabs fast double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_fabs_fast_double_src(double %D) { #0: %#1 = fptrunc double %D to float %F = fabs fast float %#1 ret float %F } Transformation doesn't verify! (not unsound) ERROR: Couldn't prove the correctness of the transformation Alive2 approximated the semantics of the programs and therefore we cannot conclude whether the bug found is valid or not. Approximations done: - afn - arcp - contract - reassoc -- 132. PassManager<llvm::Function> : Skipping NOP -- 133. PassManager<llvm::Function> : Skipping NOP -- 134. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_floor() { #0: %E = floor double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 135. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_floor() { #0: %E = floor double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_floor() { #0: ret float 2.000000 } Transformation seems to be correct! -- 136. PassManager<llvm::Function> : Skipping NOP -- 137. PassManager<llvm::Function> : Skipping NOP -- 138. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_ceil() { #0: %E = ceil double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 139. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_ceil() { #0: %E = ceil double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_ceil() { #0: ret float 3.000000 } Transformation seems to be correct! -- 140. PassManager<llvm::Function> : Skipping NOP -- 141. PassManager<llvm::Function> : Skipping NOP -- 142. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_round() { #0: %E = round double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 143. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_round() { #0: %E = round double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_round() { #0: ret float 2.000000 } Transformation seems to be correct! -- 144. PassManager<llvm::Function> : Skipping NOP -- 145. PassManager<llvm::Function> : Skipping NOP -- 146. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_roundeven() { #0: %E = roundeven double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 147. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_roundeven() { #0: %E = roundeven double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_roundeven() { #0: ret float 2.000000 } Transformation seems to be correct! -- 148. PassManager<llvm::Function> : Skipping NOP -- 149. PassManager<llvm::Function> : Skipping NOP -- 150. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_nearbyint() { #0: %E = nearbyint double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 151. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_nearbyint() { #0: %E = nearbyint double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_nearbyint() { #0: ret float 2.000000 } Transformation seems to be correct! -- 152. PassManager<llvm::Function> : Skipping NOP -- 153. PassManager<llvm::Function> : Skipping NOP -- 154. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_trunc() { #0: %E = trunc double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 155. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_trunc() { #0: %E = trunc double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_trunc() { #0: ret float 2.000000 } Transformation seems to be correct! -- 156. PassManager<llvm::Function> : Skipping NOP -- 157. PassManager<llvm::Function> : Skipping NOP -- 158. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_fabs() { #0: %E = fabs double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 159. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_fabs() { #0: %E = fabs double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_fabs() { #0: ret float 2.100000 } Transformation seems to be correct! -- 160. PassManager<llvm::Function> : Skipping NOP -- 161. PassManager<llvm::Function> : Skipping NOP -- 162. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_fabs_fast() { #0: %E = fabs fast double 2.100000 %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 163. InstCombinePass ---------------------------------------- define float @test_shrink_float_convertible_constant_intrin_fabs_fast() { #0: %E = fabs fast double 2.100000 %F = fptrunc double %E to float ret float %F } => define float @test_shrink_float_convertible_constant_intrin_fabs_fast() { #0: ret float 2.100000 } Transformation doesn't verify! (not unsound) ERROR: Couldn't prove the correctness of the transformation Alive2 approximated the semantics of the programs and therefore we cannot conclude whether the bug found is valid or not. Approximations done: - afn - arcp - contract - reassoc -- 164. PassManager<llvm::Function> : Skipping NOP -- 165. PassManager<llvm::Function> : Skipping NOP -- 166. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_floor(double %D) { #0: %E = floor double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 167. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_floor(double %D) { #0: %E = floor double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 168. PassManager<llvm::Function> : Skipping NOP -- 169. PassManager<llvm::Function> : Skipping NOP -- 170. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_ceil(double %D) { #0: %E = ceil double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 171. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_ceil(double %D) { #0: %E = ceil double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 172. PassManager<llvm::Function> : Skipping NOP -- 173. PassManager<llvm::Function> : Skipping NOP -- 174. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_round(double %D) { #0: %E = round double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 175. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_round(double %D) { #0: %E = round double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 176. PassManager<llvm::Function> : Skipping NOP -- 177. PassManager<llvm::Function> : Skipping NOP -- 178. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_roundeven(double %D) { #0: %E = roundeven double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 179. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_roundeven(double %D) { #0: %E = roundeven double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 180. PassManager<llvm::Function> : Skipping NOP -- 181. PassManager<llvm::Function> : Skipping NOP -- 182. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_nearbyint(double %D) { #0: %E = nearbyint double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 183. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_nearbyint(double %D) { #0: %E = nearbyint double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 184. PassManager<llvm::Function> : Skipping NOP -- 185. PassManager<llvm::Function> : Skipping NOP -- 186. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_trunc(double %D) { #0: %E = trunc double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 187. InstCombinePass ---------------------------------------- define half @test_no_shrink_mismatched_type_intrin_trunc(double %D) { #0: %E = trunc double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 188. PassManager<llvm::Function> : Skipping NOP -- 189. PassManager<llvm::Function> : Skipping NOP -- 190. InstCombinePass ---------------------------------------- define half @test_shrink_mismatched_type_intrin_fabs_double_src(double %D) { #0: %E = fabs double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 191. InstCombinePass ---------------------------------------- define half @test_shrink_mismatched_type_intrin_fabs_double_src(double %D) { #0: %E = fabs double %D %F = fptrunc double %E to half ret half %F } => define half @test_shrink_mismatched_type_intrin_fabs_double_src(double %D) { #0: %#1 = fptrunc double %D to half %F = fabs half %#1 ret half %F } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 192. PassManager<llvm::Function> : Skipping NOP -- 193. PassManager<llvm::Function> : Skipping NOP -- 194. InstCombinePass ---------------------------------------- define half @test_mismatched_type_intrin_fabs_fast_double_src(double %D) { #0: %E = fabs fast double %D %F = fptrunc double %E to half ret half %F } Transformation seems to be correct! (syntactically equal) -- 195. InstCombinePass ---------------------------------------- define half @test_mismatched_type_intrin_fabs_fast_double_src(double %D) { #0: %E = fabs fast double %D %F = fptrunc double %E to half ret half %F } => define half @test_mismatched_type_intrin_fabs_fast_double_src(double %D) { #0: %#1 = fptrunc double %D to half %F = fabs fast half %#1 ret half %F } Transformation doesn't verify! (not unsound) ERROR: Couldn't prove the correctness of the transformation Alive2 approximated the semantics of the programs and therefore we cannot conclude whether the bug found is valid or not. Approximations done: - afn - arcp - contract - reassoc -- 196. PassManager<llvm::Function> : Skipping NOP -- 197. PassManager<llvm::Function> : Skipping NOP -- 198. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_floor_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = floor arcp <2 x double> %D ret <2 x double> %E } Transformation seems to be correct! (syntactically equal) -- 199. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_floor_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = floor arcp <2 x double> %D ret <2 x double> %E } => define <2 x double> @test_shrink_intrin_floor_fp16_vec(<2 x half> %C) { #0: %#1 = floor arcp <2 x half> %C %E = fpext <2 x half> %#1 to <2 x double> ret <2 x double> %E } Transformation doesn't verify! (not unsound) ERROR: Couldn't prove the correctness of the transformation Alive2 approximated the semantics of the programs and therefore we cannot conclude whether the bug found is valid or not. Approximations done: - arcp -- 200. PassManager<llvm::Function> : Skipping NOP -- 201. PassManager<llvm::Function> : Skipping NOP -- 202. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_ceil_fp16_src(half %C) { #0: %D = fpext half %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 203. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_ceil_fp16_src(half %C) { #0: %D = fpext half %C to double %E = ceil double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_ceil_fp16_src(half %C) { #0: %#1 = ceil half %C %F = fpext half %#1 to float ret float %F } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 204. PassManager<llvm::Function> : Skipping NOP -- 205. PassManager<llvm::Function> : Skipping NOP -- 206. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_round_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = round <2 x double> %D ret <2 x double> %E } Transformation seems to be correct! (syntactically equal) -- 207. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_round_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = round <2 x double> %D ret <2 x double> %E } => define <2 x double> @test_shrink_intrin_round_fp16_vec(<2 x half> %C) { #0: %#1 = round <2 x half> %C %E = fpext <2 x half> %#1 to <2 x double> ret <2 x double> %E } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 208. PassManager<llvm::Function> : Skipping NOP -- 209. PassManager<llvm::Function> : Skipping NOP -- 210. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_roundeven_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = roundeven <2 x double> %D ret <2 x double> %E } Transformation seems to be correct! (syntactically equal) -- 211. InstCombinePass ---------------------------------------- define <2 x double> @test_shrink_intrin_roundeven_fp16_vec(<2 x half> %C) { #0: %D = fpext <2 x half> %C to <2 x double> %E = roundeven <2 x double> %D ret <2 x double> %E } => define <2 x double> @test_shrink_intrin_roundeven_fp16_vec(<2 x half> %C) { #0: %#1 = roundeven <2 x half> %C %E = fpext <2 x half> %#1 to <2 x double> ret <2 x double> %E } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 212. PassManager<llvm::Function> : Skipping NOP -- 213. PassManager<llvm::Function> : Skipping NOP -- 214. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_nearbyint_fp16_src(half %C) { #0: %D = fpext half %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } Transformation seems to be correct! (syntactically equal) -- 215. InstCombinePass ---------------------------------------- define float @test_shrink_intrin_nearbyint_fp16_src(half %C) { #0: %D = fpext half %C to double %E = nearbyint double %D %F = fptrunc double %E to float ret float %F } => define float @test_shrink_intrin_nearbyint_fp16_src(half %C) { #0: %#1 = nearbyint half %C %F = fpext half %#1 to float ret float %F } Transformation doesn't verify! (unsound) ERROR: Value mismatch Example: half %C = #x7c02 (SNaN) Source: double %D = #xfff8000000000000 (QNaN) double %E = #xfff8000000000000 (QNaN) float %F = #xffc00000 (QNaN) Target: half %#1 = #x7e01 (QNaN) float %F = #x7fc02000 (QNaN) Source value: #xffc00000 (QNaN) Target value: #x7fc02000 (QNaN) 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' '-passes=instcombine' '-S' '-mtriple' 'i386-pc-mingw32' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_Sti9kca8_CZdz.bc" ------------------- SMT STATS ------------------- Num queries: 155 Num invalid: 0 Num skips: 0 Num trivial: 129 (45.4%) Num timeout: 26 (16.8%) Num errors: 0 (0.0%) Num SAT: 100 (64.5%) Num UNSAT: 29 (18.7%) Alive2: Transform doesn't verify; aborting!
RUN: at line 3: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll -passes=instcombine -S -mtriple "i386-pc-linux" | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-4BYTE-ALIGN + /home/nlopes/alive2/build/opt-alive.sh -passes=instcombine -S -mtriple i386-pc-linux + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-4BYTE-ALIGN RUN: at line 4: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll -passes=instcombine -S -mtriple "i386-pc-win32" | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN + /home/nlopes/alive2/build/opt-alive.sh -passes=instcombine -S -mtriple i386-pc-win32 + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN RUN: at line 5: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll -passes=instcombine -S -mtriple "x86_64-pc-win32" | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN + /home/nlopes/alive2/build/opt-alive.sh -passes=instcombine -S -mtriple x86_64-pc-win32 + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN RUN: at line 6: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll -passes=instcombine -S -mtriple "i386-pc-mingw32" | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN + /home/nlopes/alive2/build/opt-alive.sh -passes=instcombine -S -mtriple i386-pc-mingw32 + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN