Test Failure: Transforms/InstSimplify/ConstProp/loads.ll

Test source: git

Comments: LLVM bug: int->ptr undef transformation

Log:

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!

stderr:

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

--

 

<-- Back