Test source: git
Comments: LLVM bug: int->ptr undef transformation
Source: <stdin>
-- 1. ModuleToFunctionPassAdaptor
ERROR: Unsupported instruction: %r = load i16, ptr addrspace(1) addrspacecast (ptr @g1 to ptr addrspace(1)), a
ERROR: Unsupported type: ppc_fp128
ERROR: Unsupported type: x86_fp80
ERROR: Unsupported constant: [2 x ptr addrspace(1)] [ptr addrspace(1) inttoptr (i16 1 to ptr addrspace(1)), ptr addrspace(1) inttoptr (i16 2 to ptr addrspace(1))]
ERROR: Unsupported constant: { [4294967295 x [0 x i32]], i64 } { [4294967295 x [0 x i32]] poison, i64 123 }
ERROR: Unsupported constant: [4294967295 x [0 x i32]] zeroinitializer
-- 1. PassManager<Function> : Skipping NOP
-- 2. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i32 @test1() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load i32, ptr @g1, align 4
ret i32 %r
}
Transformation seems to be correct! (syntactically equal)
-- 3. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i32 @test1() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load i32, ptr @g1, align 8
ret i32 %r
}
=>
@g1 = constant 12 bytes, align 8
define i32 @test1() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
ret i32 3735928559
}
Transformation seems to be correct!
-- 4. PassManager<Function> : Skipping NOP
-- 5. PassManager<Function> : Skipping NOP
-- 6. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test2() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load i16, ptr @g1, align 2
ret i16 %r
}
Transformation seems to be correct! (syntactically equal)
-- 7. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test2() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load i16, ptr @g1, align 8
ret i16 %r
}
=>
@g1 = constant 12 bytes, align 8
define i16 @test2() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
ret i16 48879
}
Transformation seems to be correct!
-- 8. PassManager<Function> : Skipping NOP
-- 9. PassManager<Function> : Skipping NOP
ERROR: Unsupported instruction: %r = load i16, ptr addrspace(1) addrspacecast (ptr @g1 to ptr addrspace(1)), a
-- 10. InstSimplifyPass
ERROR: Unsupported instruction: %r = load i16, ptr addrspace(1) addrspacecast (ptr @g1 to ptr addrspace(1)), a
-- 11. InstSimplifyPass
-- 12. PassManager<Function> : Skipping NOP
-- 13. PassManager<Function> : Skipping NOP
-- 14. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test3() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%__constexpr_0 = gep ptr @g1, 2 x i32 1
%r = load i16, ptr %__constexpr_0, align 2
ret i16 %r
}
Transformation seems to be correct! (syntactically equal)
-- 15. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test3() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%__constexpr_0 = gep ptr @g1, 2 x i32 1
%r = load i16, ptr %__constexpr_0, align 2
ret i16 %r
}
=>
@g1 = constant 12 bytes, align 8
define i16 @test3() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
ret i16 57005
}
Transformation seems to be correct!
-- 16. PassManager<Function> : Skipping NOP
-- 17. PassManager<Function> : Skipping NOP
-- 18. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test4() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%__constexpr_0 = gep ptr @g1, 2 x i32 2
%r = load i16, ptr %__constexpr_0, align 2
ret i16 %r
}
Transformation seems to be correct! (syntactically equal)
-- 19. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define i16 @test4() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%__constexpr_0 = gep ptr @g1, 2 x i32 2
%r = load i16, ptr %__constexpr_0, align 4
ret i16 %r
}
=>
@g1 = constant 12 bytes, align 8
define i16 @test4() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
ret i16 186
}
Transformation seems to be correct!
-- 20. PassManager<Function> : Skipping NOP
-- 21. PassManager<Function> : Skipping NOP
-- 22. InstSimplifyPass
----------------------------------------
@g2 = constant 8 bytes, align 8
define i64 @test6() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
%r = load i64, ptr @g2, align 8
ret i64 %r
}
Transformation seems to be correct! (syntactically equal)
-- 23. InstSimplifyPass
----------------------------------------
@g2 = constant 8 bytes, align 8
define i64 @test6() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
%r = load i64, ptr @g2, align 8
ret i64 %r
}
=>
@g2 = constant 8 bytes, align 8
define i64 @test6() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
ret i64 4607182418800017408
}
Transformation seems to be correct!
-- 24. PassManager<Function> : Skipping NOP
-- 25. PassManager<Function> : Skipping NOP
-- 26. InstSimplifyPass
----------------------------------------
@g2 = constant 8 bytes, align 8
define i16 @test7() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
%r = load i16, ptr @g2, align 2
ret i16 %r
}
Transformation seems to be correct! (syntactically equal)
-- 27. InstSimplifyPass
----------------------------------------
@g2 = constant 8 bytes, align 8
define i16 @test7() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
%r = load i16, ptr @g2, align 8
ret i16 %r
}
=>
@g2 = constant 8 bytes, align 8
define i16 @test7() {
init:
store double 1.000000, ptr @g2, align 8
br label %#0
#0:
ret i16 0
}
Transformation seems to be correct!
-- 28. PassManager<Function> : Skipping NOP
-- 29. PassManager<Function> : Skipping NOP
-- 30. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define double @test8() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load double, ptr @g1, align 8
ret double %r
}
Transformation seems to be correct! (syntactically equal)
-- 31. InstSimplifyPass
----------------------------------------
@g1 = constant 12 bytes, align 8
define double @test8() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
%r = load double, ptr @g1, align 8
ret double %r
}
=>
@g1 = constant 12 bytes, align 8
define double @test8() {
init:
%__copy_0 = {{i32, i8, i24}, i32} { { 3735928559, 186, [padding] }, 3405691582 }
store {{i32, i8, i24}, i32} %__copy_0, ptr @g1, align 8
br label %#0
#0:
ret double 0x000000badeadbeef
}
Transformation seems to be correct!
-- 32. PassManager<Function> : Skipping NOP
-- 33. PassManager<Function> : Skipping NOP
-- 34. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define i128 @test_i128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load i128, ptr @g3, align 8
ret i128 %r
}
Transformation seems to be correct! (syntactically equal)
-- 35. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define i128 @test_i128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load i128, ptr @g3, align 8
ret i128 %r
}
=>
@g3 = constant 16 bytes, align 8
define i128 @test_i128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
ret i128 2071796475790618158476296315
}
Transformation seems to be correct!
-- 36. PassManager<Function> : Skipping NOP
-- 37. PassManager<Function> : Skipping NOP
-- 38. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define fp128 @test_fp128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load fp128, ptr @g3, align 16
ret fp128 %r
}
Transformation seems to be correct! (syntactically equal)
-- 39. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define fp128 @test_fp128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load fp128, ptr @g3, align 16
ret fp128 %r
}
=>
@g3 = constant 16 bytes, align 8
define fp128 @test_fp128() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
ret fp128 2071796475790618158476296315
}
****************************************
WARNING: Source function is always UB.
It can be refined by any target function.
Please make sure this is what you wanted.
****************************************
Transformation seems to be correct!
-- 40. PassManager<Function> : Skipping NOP
-- 41. PassManager<Function> : Skipping NOP
ERROR: Unsupported type: ppc_fp128
-- 42. InstSimplifyPass
ERROR: Unsupported type: ppc_fp128
-- 43. InstSimplifyPass
ERROR: Unsupported type: ppc_fp128
-- 44. PassManager<Function> : Skipping NOP
ERROR: Unsupported type: ppc_fp128
-- 45. PassManager<Function> : Skipping NOP
ERROR: Unsupported type: x86_fp80
-- 46. InstSimplifyPass
ERROR: Unsupported type: x86_fp80
-- 47. InstSimplifyPass
ERROR: Unsupported type: x86_fp80
-- 48. PassManager<Function> : Skipping NOP
ERROR: Unsupported type: x86_fp80
-- 49. PassManager<Function> : Skipping NOP
-- 50. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define bfloat @test_bfloat() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load bfloat, ptr @g3, align 2
ret bfloat %r
}
Transformation seems to be correct! (syntactically equal)
-- 51. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define bfloat @test_bfloat() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load bfloat, ptr @g3, align 8
ret bfloat %r
}
=>
@g3 = constant 16 bytes, align 8
define bfloat @test_bfloat() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
ret bfloat 0x007b
}
Transformation seems to be correct!
-- 52. PassManager<Function> : Skipping NOP
-- 53. PassManager<Function> : Skipping NOP
-- 54. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define <2 x i64> @test10() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load <2 x i64>, ptr @g3, align 16
ret <2 x i64> %r
}
Transformation seems to be correct! (syntactically equal)
-- 55. InstSimplifyPass
----------------------------------------
@g3 = constant 16 bytes, align 8
define <2 x i64> @test10() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
%r = load <2 x i64>, ptr @g3, align 16
ret <2 x i64> %r
}
=>
@g3 = constant 16 bytes, align 8
define <2 x i64> @test10() {
init:
store {i64, i64} { 123, 112312312 }, ptr @g3, align 8
br label %#0
#0:
ret <2 x i64> { 123, 112312312 }
}
****************************************
WARNING: Source function is always UB.
It can be refined by any target function.
Please make sure this is what you wanted.
****************************************
Transformation seems to be correct!
-- 56. PassManager<Function> : Skipping NOP
-- 57. PassManager<Function> : Skipping NOP
-- 58. InstSimplifyPass
----------------------------------------
@g4 = constant 2 bytes, align 8
define i16 @test11() {
init:
store {i8, i8} { 161, 8 }, ptr @g4, align 8
br label %entry
entry:
%a = load i16, ptr @g4, align 2
ret i16 %a
}
Transformation seems to be correct! (syntactically equal)
-- 59. InstSimplifyPass
----------------------------------------
@g4 = constant 2 bytes, align 8
define i16 @test11() {
init:
store {i8, i8} { 161, 8 }, ptr @g4, align 8
br label %entry
entry:
%a = load i16, ptr @g4, align 8
ret i16 %a
}
=>
@g4 = constant 2 bytes, align 8
define i16 @test11() {
init:
store {i8, i8} { 161, 8 }, ptr @g4, align 8
br label %entry
entry:
ret i16 2209
}
Transformation seems to be correct!
-- 60. PassManager<Function> : Skipping NOP
-- 61. PassManager<Function> : Skipping NOP
-- 62. InstSimplifyPass
----------------------------------------
@test12g = constant 6 bytes, align 1
define i16 @test12() {
init:
store [6 x i8] { 97, 0, 98, 0, 0, 0 }, ptr @test12g, align 1
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @test12g, 6 x i32 0, 2 x i64 1
%a = load i16, ptr %__constexpr_0, align 2
ret i16 %a
}
Transformation seems to be correct! (syntactically equal)
-- 63. InstSimplifyPass
----------------------------------------
@test12g = constant 6 bytes, align 1
define i16 @test12() {
init:
store [6 x i8] { 97, 0, 98, 0, 0, 0 }, ptr @test12g, align 1
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @test12g, 6 x i32 0, 2 x i64 1
%a = load i16, ptr %__constexpr_0, align 2
ret i16 %a
}
=>
@test12g = constant 6 bytes, align 1
define i16 @test12() {
init:
store [6 x i8] { 97, 0, 98, 0, 0, 0 }, ptr @test12g, align 1
br label %#0
#0:
ret i16 98
}
****************************************
WARNING: Source function is always UB.
It can be refined by any target function.
Please make sure this is what you wanted.
****************************************
Transformation seems to be correct!
-- 64. PassManager<Function> : Skipping NOP
-- 65. PassManager<Function> : Skipping NOP
-- 66. InstSimplifyPass
----------------------------------------
@g5 = constant 1 bytes, align 1
define i1 @test13() {
init:
store i8 4, ptr @g5, align 1
br label %#0
#0:
%A = load i1, ptr @g5, align 1
ret i1 %A
}
Transformation seems to be correct! (syntactically equal)
-- 67. InstSimplifyPass
----------------------------------------
@g5 = constant 1 bytes, align 1
define i1 @test13() {
init:
store i8 4, ptr @g5, align 1
br label %#0
#0:
%A = load i1, ptr @g5, align 1
ret i1 %A
}
=>
@g5 = constant 1 bytes, align 1
define i1 @test13() {
init:
store i8 4, ptr @g5, align 1
br label %#0
#0:
ret i1 0
}
Transformation seems to be correct!
-- 68. PassManager<Function> : Skipping NOP
-- 69. PassManager<Function> : Skipping NOP
-- 70. InstSimplifyPass
----------------------------------------
@g6 = constant 16 bytes, align 8
define i64 @test14() {
init:
%__constexpr_0 = inttoptr i64 1 to ptr
%__constexpr_1 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_0, %__constexpr_1 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
%tmp = load i64, ptr @g6, align 8
ret i64 %tmp
}
Transformation seems to be correct! (syntactically equal)
-- 71. InstSimplifyPass
----------------------------------------
@g6 = constant 16 bytes, align 8
define i64 @test14() {
init:
%__constexpr_0 = inttoptr i64 1 to ptr
%__constexpr_1 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_0, %__constexpr_1 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
%tmp = load i64, ptr @g6, align 8
ret i64 %tmp
}
=>
@g6 = constant 16 bytes, align 8
define i64 @test14() {
init:
%__constexpr_0 = inttoptr i64 1 to ptr
%__constexpr_1 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_0, %__constexpr_1 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
ret i64 1
}
Transformation seems to be correct!
-- 72. PassManager<Function> : Skipping NOP
-- 73. PassManager<Function> : Skipping NOP
ERROR: Unsupported constant: [2 x ptr addrspace(1)] [ptr addrspace(1) inttoptr (i16 1 to ptr addrspace(1)), ptr addrspace(1) inttoptr (i16 2 to ptr addrspace(1))]
-- 74. InstSimplifyPass
ERROR: Unsupported constant: [2 x ptr addrspace(1)] [ptr addrspace(1) inttoptr (i16 1 to ptr addrspace(1)), ptr addrspace(1) inttoptr (i16 2 to ptr addrspace(1))]
-- 75. InstSimplifyPass
-- 76. PassManager<Function> : Skipping NOP
-- 77. PassManager<Function> : Skipping NOP
-- 78. InstSimplifyPass
----------------------------------------
@g6 = constant 16 bytes, align 8
define i64 @test15() {
init:
%__constexpr_1 = inttoptr i64 1 to ptr
%__constexpr_2 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_1, %__constexpr_2 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
%__constexpr_0 = gep inbounds ptr @g6, 16 x i32 0, 8 x i64 1
%tmp = load i64, ptr %__constexpr_0, align 8
ret i64 %tmp
}
Transformation seems to be correct! (syntactically equal)
-- 79. InstSimplifyPass
----------------------------------------
@g6 = constant 16 bytes, align 8
define i64 @test15() {
init:
%__constexpr_1 = inttoptr i64 1 to ptr
%__constexpr_2 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_1, %__constexpr_2 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
%__constexpr_0 = gep inbounds ptr @g6, 16 x i32 0, 8 x i64 1
%tmp = load i64, ptr %__constexpr_0, align 8
ret i64 %tmp
}
=>
@g6 = constant 16 bytes, align 8
define i64 @test15() {
init:
%__constexpr_0 = inttoptr i64 1 to ptr
%__constexpr_1 = inttoptr i64 2 to ptr
%__copy_0 = [2 x ptr] { %__constexpr_0, %__constexpr_1 }
store [2 x ptr] %__copy_0, ptr @g6, align 8
br label %entry
entry:
ret i64 2
}
Transformation seems to be correct!
-- 80. PassManager<Function> : Skipping NOP
-- 81. PassManager<Function> : Skipping NOP
-- 82. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.1() {
init:
%__constexpr_0 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_0, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%v = load i64, ptr @gv7, align 8
ret i64 %v
}
Transformation seems to be correct! (syntactically equal)
-- 83. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.1() {
init:
%__constexpr_0 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_0, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%v = load i64, ptr @gv7, align 16
ret i64 %v
}
=>
@gv7 = constant 32 bytes, align 16
define i64 @test16.1() {
init:
%__constexpr_0 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_0, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
ret i64 0
}
Transformation seems to be correct!
-- 84. PassManager<Function> : Skipping NOP
-- 85. PassManager<Function> : Skipping NOP
-- 86. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.2() {
init:
%__constexpr_1 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_1, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @gv7, 32 x i64 0, 8 x i64 1
%v = load i64, ptr %__constexpr_0, align 8
ret i64 %v
}
Transformation seems to be correct! (syntactically equal)
-- 87. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.2() {
init:
%__constexpr_1 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_1, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @gv7, 32 x i64 0, 8 x i64 1
%v = load i64, ptr %__constexpr_0, align 8
ret i64 %v
}
=>
@gv7 = constant 32 bytes, align 16
define i64 @test16.2() {
init:
%__constexpr_0 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_0, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
ret i64 -14
}
Transformation seems to be correct!
-- 88. PassManager<Function> : Skipping NOP
-- 89. PassManager<Function> : Skipping NOP
-- 90. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.3() {
init:
%__constexpr_1 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_1, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @gv7, 32 x i64 0, 8 x i64 2
%v = load i64, ptr %__constexpr_0, align 8
ret i64 %v
}
Transformation seems to be correct! (syntactically equal)
-- 91. InstSimplifyPass
----------------------------------------
@gv7 = constant 32 bytes, align 16
define i64 @test16.3() {
init:
%__constexpr_1 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_1, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
%__constexpr_0 = gep inbounds ptr @gv7, 32 x i64 0, 8 x i64 2
%v = load i64, ptr %__constexpr_0, align 16
ret i64 %v
}
=>
@gv7 = constant 32 bytes, align 16
define i64 @test16.3() {
init:
%__constexpr_0 = inttoptr i64 -14 to ptr
%__copy_0 = [4 x ptr] { null, %__constexpr_0, null, null }
store [4 x ptr] %__copy_0, ptr @gv7, align 16
br label %#0
#0:
ret i64 0
}
Transformation seems to be correct!
-- 92. PassManager<Function> : Skipping NOP
-- 93. PassManager<Function> : Skipping NOP
-- 94. InstSimplifyPass
----------------------------------------
@g7 = constant 8 bytes, align 8
define ptr @test_leading_zero_size_elems() {
init:
store {(empty array), (empty array), ptr} { poison, poison, null }, ptr @g7, align 8
br label %#0
#0:
%v = load ptr, ptr @g7, align 8
ret ptr %v
}
Transformation seems to be correct! (syntactically equal)
-- 95. InstSimplifyPass
----------------------------------------
@g7 = constant 8 bytes, align 8
define ptr @test_leading_zero_size_elems() {
init:
store {(empty array), (empty array), ptr} { poison, poison, null }, ptr @g7, align 8
br label %#0
#0:
%v = load ptr, ptr @g7, align 8
ret ptr %v
}
=>
@g7 = constant 8 bytes, align 8
define ptr @test_leading_zero_size_elems() {
init:
store {(empty array), (empty array), ptr} { poison, poison, null }, ptr @g7, align 8
br label %#0
#0:
ret ptr null
}
Transformation seems to be correct!
-- 96. PassManager<Function> : Skipping NOP
-- 97. PassManager<Function> : Skipping NOP
ERROR: Unsupported constant: { [4294967295 x [0 x i32]], i64 } { [4294967295 x [0 x i32]] poison, i64 123 }
-- 98. InstSimplifyPass
ERROR: Unsupported constant: { [4294967295 x [0 x i32]], i64 } { [4294967295 x [0 x i32]] poison, i64 123 }
-- 99. InstSimplifyPass
-- 100. PassManager<Function> : Skipping NOP
-- 101. PassManager<Function> : Skipping NOP
ERROR: Unsupported constant: [4294967295 x [0 x i32]] zeroinitializer
-- 102. InstSimplifyPass
ERROR: Unsupported constant: [4294967295 x [0 x i32]] zeroinitializer
-- 103. InstSimplifyPass
-- 104. PassManager<Function> : Skipping NOP
-- 105. PassManager<Function> : Skipping NOP
-- 106. InstSimplifyPass
----------------------------------------
@g_undef = constant 16 bytes, align 8
define ptr @test_undef_aggregate() {
init:
store {i128} undef, ptr @g_undef, align 8
br label %#0
#0:
%v = load ptr, ptr @g_undef, align 8
ret ptr %v
}
Transformation seems to be correct! (syntactically equal)
-- 107. InstSimplifyPass
----------------------------------------
@g_undef = constant 16 bytes, align 8
define ptr @test_undef_aggregate() {
init:
store {i128} undef, ptr @g_undef, align 8
br label %#0
#0:
%v = load ptr, ptr @g_undef, align 8
ret ptr %v
}
=>
@g_undef = constant 16 bytes, align 8
define ptr @test_undef_aggregate() {
init:
store {i128} undef, ptr @g_undef, align 8
br label %#0
#0:
ret ptr undef
}
Transformation doesn't verify! (unsound)
ERROR: Value mismatch
Example:
Source:
>> Jump to %#0
ptr %v = pointer(non-local, block_id=0, offset=3) / Address=#x03 [based on undef]
SOURCE MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 > size: 0 align: 8 alloc type: 0 alive: false address: #x00
Block 1 > size: 16 align: 8 alloc type: 0 alive: true address: #x08 const
Block 2 > size: 0 align: 8 alloc type: 0 alive: true address: #x00
Target:
>> Jump to %#0
TARGET MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 > size: 0 align: 8 alloc type: 0 alive: false address: #x00
Block 1 > size: 16 align: 8 alloc type: 0 alive: true address: #x08 const
Block 2 > size: 0 align: 8 alloc type: 0 alive: true address: #x00
Source value: pointer(non-local, block_id=0, offset=3) / Address=#x03 [based on undef]
Target value: pointer(non-local, block_id=1, offset=0) / Address=#x08
Pass: InstSimplifyPass
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' '-data-layout=e-p:64:64:64-p1:16:16:16-p2:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-ni:2' '-passes=instsimplify' '-S' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats'
Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_h5OBxgVK_PO2P.bc"
------------------- SMT STATS -------------------
Num queries: 57
Num invalid: 0
Num skips: 0
Num trivial: 129 (69.4%)
Num timeout: 0 (0.0%)
Num errors: 0 (0.0%)
Num SAT: 49 (86.0%)
Num UNSAT: 8 (14.0%)
Alive2: Transform doesn't verify; aborting!
Transforms/InstSimplify/ConstProp/loads.ll' FAILED ******************** Exit Code: 2 Command Output (stdout): -- # RUN: at line 2 /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll -data-layout="e-p:64:64:64-p1:16:16:16-p2:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-ni:2" -passes=instsimplify -S | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll --check-prefixes=CHECK,LE # executed command: /home/nlopes/alive2/build/opt-alive.sh -data-layout=e-p:64:64:64-p1:16:16:16-p2:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-ni:2 -passes=instsimplify -S # .---command stderr------------ # `----------------------------- # error: command failed with exit status: 1 # executed command: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll --check-prefixes=CHECK,LE # .---command stderr------------ # | FileCheck error: '<stdin>' is empty. # | FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ConstProp/loads.ll --check-prefixes=CHECK,LE # `----------------------------- # error: command failed with exit status: 2 --