Test Failure: Transforms/SLPVectorizer/X86/sitofp.ll

Test source: git

Log:

Source: <stdin>

----------------------------------------
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i64_2f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_3, align 8
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i64_2f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_3, align 8
  ret void
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i64_4f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to double, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_7, align 8
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i64_4f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to double, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_7, align 8
  ret void
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i64_8f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %__constexpr_4 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 4
  %ld4 = load i64, ptr %__constexpr_4, align 32
  %__constexpr_5 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 5
  %ld5 = load i64, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 6
  %ld6 = load i64, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 7
  %ld7 = load i64, ptr %__constexpr_7, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to double, exceptions=ignore
  %cvt4 = sitofp i64 %ld4 to double, exceptions=ignore
  %cvt5 = sitofp i64 %ld5 to double, exceptions=ignore
  %cvt6 = sitofp i64 %ld6 to double, exceptions=ignore
  %cvt7 = sitofp i64 %ld7 to double, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_9, align 8
  %__constexpr_10 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_10, align 16
  %__constexpr_11 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_11, align 8
  %__constexpr_12 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  store double %cvt4, ptr %__constexpr_12, align 32
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 5
  store double %cvt5, ptr %__constexpr_13, align 8
  %__constexpr_14 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  store double %cvt6, ptr %__constexpr_14, align 16
  %__constexpr_15 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 7
  store double %cvt7, ptr %__constexpr_15, align 8
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i64_8f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %__constexpr_4 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 4
  %ld4 = load i64, ptr %__constexpr_4, align 32
  %__constexpr_5 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 5
  %ld5 = load i64, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 6
  %ld6 = load i64, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 7
  %ld7 = load i64, ptr %__constexpr_7, align 8
  %cvt0 = sitofp i64 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to double, exceptions=ignore
  %cvt4 = sitofp i64 %ld4 to double, exceptions=ignore
  %cvt5 = sitofp i64 %ld5 to double, exceptions=ignore
  %cvt6 = sitofp i64 %ld6 to double, exceptions=ignore
  %cvt7 = sitofp i64 %ld7 to double, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_9, align 8
  %__constexpr_10 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_10, align 16
  %__constexpr_11 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_11, align 8
  %__constexpr_12 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  store double %cvt4, ptr %__constexpr_12, align 32
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 5
  store double %cvt5, ptr %__constexpr_13, align 8
  %__constexpr_14 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  store double %cvt6, ptr %__constexpr_14, align 16
  %__constexpr_15 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 7
  store double %cvt7, ptr %__constexpr_15, align 8
  ret void
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i32_2f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %cvt0 = sitofp i32 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to double, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_3, align 8
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i32_2f64() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <2 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i32> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i32_4f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %__constexpr_2 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %ld2 = load i32, ptr %__constexpr_2, align 8
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 3
  %ld3 = load i32, ptr %__constexpr_3, align 4
  %cvt0 = sitofp i32 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i32 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i32 %ld3 to double, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_7, align 8
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i32_4f64() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <2 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i32> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i32>, ptr %__constexpr_2, align 8
  %4 = sitofp <2 x i32> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i32_8f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %__constexpr_2 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %ld2 = load i32, ptr %__constexpr_2, align 8
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 3
  %ld3 = load i32, ptr %__constexpr_3, align 4
  %__constexpr_4 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %ld4 = load i32, ptr %__constexpr_4, align 16
  %__constexpr_5 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 5
  %ld5 = load i32, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 6
  %ld6 = load i32, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 7
  %ld7 = load i32, ptr %__constexpr_7, align 4
  %cvt0 = sitofp i32 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i32 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i32 %ld3 to double, exceptions=ignore
  %cvt4 = sitofp i32 %ld4 to double, exceptions=ignore
  %cvt5 = sitofp i32 %ld5 to double, exceptions=ignore
  %cvt6 = sitofp i32 %ld6 to double, exceptions=ignore
  %cvt7 = sitofp i32 %ld7 to double, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_9, align 8
  %__constexpr_10 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_10, align 16
  %__constexpr_11 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_11, align 8
  %__constexpr_12 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  store double %cvt4, ptr %__constexpr_12, align 32
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 5
  store double %cvt5, ptr %__constexpr_13, align 8
  %__constexpr_14 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  store double %cvt6, ptr %__constexpr_14, align 16
  %__constexpr_15 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 7
  store double %cvt7, ptr %__constexpr_15, align 8
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i32_8f64() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <2 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i32> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i32>, ptr %__constexpr_2, align 8
  %4 = sitofp <2 x i32> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <2 x i32>, ptr %__constexpr_6, align 16
  %6 = sitofp <2 x i32> %5 to <2 x double>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <2 x double> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 6
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <2 x i32>, ptr %__constexpr_10, align 8
  %8 = sitofp <2 x i32> %7 to <2 x double>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <2 x double> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i16_2f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %cvt0 = sitofp i16 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to double, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_3, align 8
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i16_2f64() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <2 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i16> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i16_4f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %__constexpr_2 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %ld2 = load i16, ptr %__constexpr_2, align 4
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 3
  %ld3 = load i16, ptr %__constexpr_3, align 2
  %cvt0 = sitofp i16 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i16 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i16 %ld3 to double, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_7, align 8
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i16_4f64() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <2 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i16> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i16>, ptr %__constexpr_2, align 4
  %4 = sitofp <2 x i16> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i16_8f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %__constexpr_2 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %ld2 = load i16, ptr %__constexpr_2, align 4
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 3
  %ld3 = load i16, ptr %__constexpr_3, align 2
  %__constexpr_4 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %ld4 = load i16, ptr %__constexpr_4, align 8
  %__constexpr_5 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 5
  %ld5 = load i16, ptr %__constexpr_5, align 2
  %__constexpr_6 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 6
  %ld6 = load i16, ptr %__constexpr_6, align 4
  %__constexpr_7 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 7
  %ld7 = load i16, ptr %__constexpr_7, align 2
  %cvt0 = sitofp i16 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i16 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i16 %ld3 to double, exceptions=ignore
  %cvt4 = sitofp i16 %ld4 to double, exceptions=ignore
  %cvt5 = sitofp i16 %ld5 to double, exceptions=ignore
  %cvt6 = sitofp i16 %ld6 to double, exceptions=ignore
  %cvt7 = sitofp i16 %ld7 to double, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_9, align 8
  %__constexpr_10 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_10, align 16
  %__constexpr_11 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_11, align 8
  %__constexpr_12 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  store double %cvt4, ptr %__constexpr_12, align 32
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 5
  store double %cvt5, ptr %__constexpr_13, align 8
  %__constexpr_14 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  store double %cvt6, ptr %__constexpr_14, align 16
  %__constexpr_15 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 7
  store double %cvt7, ptr %__constexpr_15, align 8
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i16_8f64() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <2 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i16> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i16>, ptr %__constexpr_2, align 4
  %4 = sitofp <2 x i16> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <2 x i16>, ptr %__constexpr_6, align 8
  %6 = sitofp <2 x i16> %5 to <2 x double>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <2 x double> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 6
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <2 x i16>, ptr %__constexpr_10, align 4
  %8 = sitofp <2 x i16> %7 to <2 x double>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <2 x double> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i8_2f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %cvt0 = sitofp i8 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to double, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_3, align 8
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_2i8_2f64() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <2 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i8> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i8_4f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %__constexpr_2 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %ld2 = load i8, ptr %__constexpr_2, align 2
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 3
  %ld3 = load i8, ptr %__constexpr_3, align 1
  %cvt0 = sitofp i8 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i8 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i8 %ld3 to double, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_7, align 8
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_4i8_4f64() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <2 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i8> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i8>, ptr %__constexpr_2, align 2
  %4 = sitofp <2 x i8> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i8_8f64() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %__constexpr_2 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %ld2 = load i8, ptr %__constexpr_2, align 2
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 3
  %ld3 = load i8, ptr %__constexpr_3, align 1
  %__constexpr_4 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %ld4 = load i8, ptr %__constexpr_4, align 4
  %__constexpr_5 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 5
  %ld5 = load i8, ptr %__constexpr_5, align 1
  %__constexpr_6 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 6
  %ld6 = load i8, ptr %__constexpr_6, align 2
  %__constexpr_7 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 7
  %ld7 = load i8, ptr %__constexpr_7, align 1
  %cvt0 = sitofp i8 %ld0 to double, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to double, exceptions=ignore
  %cvt2 = sitofp i8 %ld2 to double, exceptions=ignore
  %cvt3 = sitofp i8 %ld3 to double, exceptions=ignore
  %cvt4 = sitofp i8 %ld4 to double, exceptions=ignore
  %cvt5 = sitofp i8 %ld5 to double, exceptions=ignore
  %cvt6 = sitofp i8 %ld6 to double, exceptions=ignore
  %cvt7 = sitofp i8 %ld7 to double, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 0
  store double %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 1
  store double %cvt1, ptr %__constexpr_9, align 8
  %__constexpr_10 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  store double %cvt2, ptr %__constexpr_10, align 16
  %__constexpr_11 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 3
  store double %cvt3, ptr %__constexpr_11, align 8
  %__constexpr_12 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  store double %cvt4, ptr %__constexpr_12, align 32
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 5
  store double %cvt5, ptr %__constexpr_13, align 8
  %__constexpr_14 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  store double %cvt6, ptr %__constexpr_14, align 16
  %__constexpr_15 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 7
  store double %cvt7, ptr %__constexpr_15, align 8
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst64 = global 64 bytes, align 64

define void @sitofp_8i8_8f64() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <2 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <2 x i8> %1 to <2 x double>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst64 to ptr
  store <2 x double> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <2 x i8>, ptr %__constexpr_2, align 2
  %4 = sitofp <2 x i8> %3 to <2 x double>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 2
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <2 x double> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <2 x i8>, ptr %__constexpr_6, align 4
  %6 = sitofp <2 x i8> %5 to <2 x double>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 4
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <2 x double> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 6
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <2 x i8>, ptr %__constexpr_10, align 2
  %8 = sitofp <2 x i8> %7 to <2 x double>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst64, 64 x i32 0, 8 x i64 6
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <2 x double> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_2i64_2f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %cvt0 = sitofp i64 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to float, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_3, align 4
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_2i64_2f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %cvt0 = sitofp i64 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to float, exceptions=ignore
  %__constexpr_2 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_2, align 64
  %__constexpr_3 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_3, align 4
  ret void
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i64_4f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %cvt0 = sitofp i64 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to float, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_7, align 4
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i64_4f32() {
%0:
  %__constexpr_0 = bitcast ptr @src64 to ptr
  %1 = load <4 x i64>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i64> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i64_8f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 0
  %ld0 = load i64, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 1
  %ld1 = load i64, ptr %__constexpr_1, align 8
  %__constexpr_2 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 2
  %ld2 = load i64, ptr %__constexpr_2, align 16
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 3
  %ld3 = load i64, ptr %__constexpr_3, align 8
  %__constexpr_4 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 4
  %ld4 = load i64, ptr %__constexpr_4, align 32
  %__constexpr_5 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 5
  %ld5 = load i64, ptr %__constexpr_5, align 8
  %__constexpr_6 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 6
  %ld6 = load i64, ptr %__constexpr_6, align 16
  %__constexpr_7 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 7
  %ld7 = load i64, ptr %__constexpr_7, align 8
  %cvt0 = sitofp i64 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i64 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i64 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i64 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i64 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i64 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i64 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i64 %ld7 to float, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_9, align 4
  %__constexpr_10 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_10, align 8
  %__constexpr_11 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_11, align 4
  %__constexpr_12 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_12, align 16
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_13, align 4
  %__constexpr_14 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_14, align 8
  %__constexpr_15 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_15, align 4
  ret void
}
=>
@src64 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i64_8f32() {
%0:
  %__constexpr_0 = bitcast ptr @src64 to ptr
  %1 = load <4 x i64>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i64> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src64, 64 x i32 0, 8 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i64>, ptr %__constexpr_2, align 32
  %4 = sitofp <4 x i64> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i32_4f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %__constexpr_2 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %ld2 = load i32, ptr %__constexpr_2, align 8
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 3
  %ld3 = load i32, ptr %__constexpr_3, align 4
  %cvt0 = sitofp i32 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i32 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i32 %ld3 to float, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_7, align 4
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i32_4f32() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <4 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i32> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i32_8f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %__constexpr_2 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %ld2 = load i32, ptr %__constexpr_2, align 8
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 3
  %ld3 = load i32, ptr %__constexpr_3, align 4
  %__constexpr_4 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %ld4 = load i32, ptr %__constexpr_4, align 16
  %__constexpr_5 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 5
  %ld5 = load i32, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 6
  %ld6 = load i32, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 7
  %ld7 = load i32, ptr %__constexpr_7, align 4
  %cvt0 = sitofp i32 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i32 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i32 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i32 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i32 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i32 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i32 %ld7 to float, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_9, align 4
  %__constexpr_10 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_10, align 8
  %__constexpr_11 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_11, align 4
  %__constexpr_12 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_12, align 16
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_13, align 4
  %__constexpr_14 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_14, align 8
  %__constexpr_15 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_15, align 4
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i32_8f32() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <4 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i32> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i32>, ptr %__constexpr_2, align 16
  %4 = sitofp <4 x i32> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i32_16f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 0
  %ld0 = load i32, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 1
  %ld1 = load i32, ptr %__constexpr_1, align 4
  %__constexpr_2 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 2
  %ld2 = load i32, ptr %__constexpr_2, align 8
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 3
  %ld3 = load i32, ptr %__constexpr_3, align 4
  %__constexpr_4 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %ld4 = load i32, ptr %__constexpr_4, align 16
  %__constexpr_5 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 5
  %ld5 = load i32, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 6
  %ld6 = load i32, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 7
  %ld7 = load i32, ptr %__constexpr_7, align 4
  %__constexpr_8 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 8
  %ld8 = load i32, ptr %__constexpr_8, align 32
  %__constexpr_9 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 9
  %ld9 = load i32, ptr %__constexpr_9, align 4
  %__constexpr_10 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 10
  %ld10 = load i32, ptr %__constexpr_10, align 8
  %__constexpr_11 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 11
  %ld11 = load i32, ptr %__constexpr_11, align 4
  %__constexpr_12 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 12
  %ld12 = load i32, ptr %__constexpr_12, align 16
  %__constexpr_13 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 13
  %ld13 = load i32, ptr %__constexpr_13, align 4
  %__constexpr_14 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 14
  %ld14 = load i32, ptr %__constexpr_14, align 8
  %__constexpr_15 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 15
  %ld15 = load i32, ptr %__constexpr_15, align 4
  %cvt0 = sitofp i32 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i32 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i32 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i32 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i32 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i32 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i32 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i32 %ld7 to float, exceptions=ignore
  %cvt8 = sitofp i32 %ld8 to float, exceptions=ignore
  %cvt9 = sitofp i32 %ld9 to float, exceptions=ignore
  %cvt10 = sitofp i32 %ld10 to float, exceptions=ignore
  %cvt11 = sitofp i32 %ld11 to float, exceptions=ignore
  %cvt12 = sitofp i32 %ld12 to float, exceptions=ignore
  %cvt13 = sitofp i32 %ld13 to float, exceptions=ignore
  %cvt14 = sitofp i32 %ld14 to float, exceptions=ignore
  %cvt15 = sitofp i32 %ld15 to float, exceptions=ignore
  %__constexpr_16 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_16, align 64
  %__constexpr_17 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_17, align 4
  %__constexpr_18 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_18, align 8
  %__constexpr_19 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_19, align 4
  %__constexpr_20 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_20, align 16
  %__constexpr_21 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_21, align 4
  %__constexpr_22 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_22, align 8
  %__constexpr_23 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_23, align 4
  %__constexpr_24 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  store float %cvt8, ptr %__constexpr_24, align 32
  %__constexpr_25 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 9
  store float %cvt9, ptr %__constexpr_25, align 4
  %__constexpr_26 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 10
  store float %cvt10, ptr %__constexpr_26, align 8
  %__constexpr_27 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 11
  store float %cvt11, ptr %__constexpr_27, align 4
  %__constexpr_28 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  store float %cvt12, ptr %__constexpr_28, align 16
  %__constexpr_29 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 13
  store float %cvt13, ptr %__constexpr_29, align 4
  %__constexpr_30 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 14
  store float %cvt14, ptr %__constexpr_30, align 8
  %__constexpr_31 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 15
  store float %cvt15, ptr %__constexpr_31, align 4
  ret void
}
=>
@src32 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i32_16f32() {
%0:
  %__constexpr_0 = bitcast ptr @src32 to ptr
  %1 = load <4 x i32>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i32> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i32>, ptr %__constexpr_2, align 16
  %4 = sitofp <4 x i32> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 8
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <4 x i32>, ptr %__constexpr_6, align 32
  %6 = sitofp <4 x i32> %5 to <4 x float>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <4 x float> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src32, 64 x i32 0, 4 x i64 12
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <4 x i32>, ptr %__constexpr_10, align 16
  %8 = sitofp <4 x i32> %7 to <4 x float>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <4 x float> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i16_4f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %__constexpr_2 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %ld2 = load i16, ptr %__constexpr_2, align 4
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 3
  %ld3 = load i16, ptr %__constexpr_3, align 2
  %cvt0 = sitofp i16 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i16 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i16 %ld3 to float, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_7, align 4
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i16_4f32() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <4 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i16> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i16_8f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %__constexpr_2 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %ld2 = load i16, ptr %__constexpr_2, align 4
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 3
  %ld3 = load i16, ptr %__constexpr_3, align 2
  %__constexpr_4 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %ld4 = load i16, ptr %__constexpr_4, align 8
  %__constexpr_5 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 5
  %ld5 = load i16, ptr %__constexpr_5, align 2
  %__constexpr_6 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 6
  %ld6 = load i16, ptr %__constexpr_6, align 4
  %__constexpr_7 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 7
  %ld7 = load i16, ptr %__constexpr_7, align 2
  %cvt0 = sitofp i16 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i16 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i16 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i16 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i16 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i16 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i16 %ld7 to float, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_9, align 4
  %__constexpr_10 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_10, align 8
  %__constexpr_11 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_11, align 4
  %__constexpr_12 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_12, align 16
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_13, align 4
  %__constexpr_14 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_14, align 8
  %__constexpr_15 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_15, align 4
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i16_8f32() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <4 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i16> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i16>, ptr %__constexpr_2, align 8
  %4 = sitofp <4 x i16> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i16_16f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 0
  %ld0 = load i16, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 1
  %ld1 = load i16, ptr %__constexpr_1, align 2
  %__constexpr_2 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 2
  %ld2 = load i16, ptr %__constexpr_2, align 4
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 3
  %ld3 = load i16, ptr %__constexpr_3, align 2
  %__constexpr_4 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %ld4 = load i16, ptr %__constexpr_4, align 8
  %__constexpr_5 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 5
  %ld5 = load i16, ptr %__constexpr_5, align 2
  %__constexpr_6 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 6
  %ld6 = load i16, ptr %__constexpr_6, align 4
  %__constexpr_7 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 7
  %ld7 = load i16, ptr %__constexpr_7, align 2
  %__constexpr_8 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 8
  %ld8 = load i16, ptr %__constexpr_8, align 16
  %__constexpr_9 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 9
  %ld9 = load i16, ptr %__constexpr_9, align 2
  %__constexpr_10 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 10
  %ld10 = load i16, ptr %__constexpr_10, align 4
  %__constexpr_11 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 11
  %ld11 = load i16, ptr %__constexpr_11, align 2
  %__constexpr_12 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 12
  %ld12 = load i16, ptr %__constexpr_12, align 8
  %__constexpr_13 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 13
  %ld13 = load i16, ptr %__constexpr_13, align 2
  %__constexpr_14 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 14
  %ld14 = load i16, ptr %__constexpr_14, align 4
  %__constexpr_15 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 15
  %ld15 = load i16, ptr %__constexpr_15, align 2
  %cvt0 = sitofp i16 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i16 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i16 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i16 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i16 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i16 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i16 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i16 %ld7 to float, exceptions=ignore
  %cvt8 = sitofp i16 %ld8 to float, exceptions=ignore
  %cvt9 = sitofp i16 %ld9 to float, exceptions=ignore
  %cvt10 = sitofp i16 %ld10 to float, exceptions=ignore
  %cvt11 = sitofp i16 %ld11 to float, exceptions=ignore
  %cvt12 = sitofp i16 %ld12 to float, exceptions=ignore
  %cvt13 = sitofp i16 %ld13 to float, exceptions=ignore
  %cvt14 = sitofp i16 %ld14 to float, exceptions=ignore
  %cvt15 = sitofp i16 %ld15 to float, exceptions=ignore
  %__constexpr_16 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_16, align 64
  %__constexpr_17 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_17, align 4
  %__constexpr_18 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_18, align 8
  %__constexpr_19 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_19, align 4
  %__constexpr_20 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_20, align 16
  %__constexpr_21 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_21, align 4
  %__constexpr_22 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_22, align 8
  %__constexpr_23 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_23, align 4
  %__constexpr_24 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  store float %cvt8, ptr %__constexpr_24, align 32
  %__constexpr_25 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 9
  store float %cvt9, ptr %__constexpr_25, align 4
  %__constexpr_26 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 10
  store float %cvt10, ptr %__constexpr_26, align 8
  %__constexpr_27 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 11
  store float %cvt11, ptr %__constexpr_27, align 4
  %__constexpr_28 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  store float %cvt12, ptr %__constexpr_28, align 16
  %__constexpr_29 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 13
  store float %cvt13, ptr %__constexpr_29, align 4
  %__constexpr_30 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 14
  store float %cvt14, ptr %__constexpr_30, align 8
  %__constexpr_31 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 15
  store float %cvt15, ptr %__constexpr_31, align 4
  ret void
}
=>
@src16 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i16_16f32() {
%0:
  %__constexpr_0 = bitcast ptr @src16 to ptr
  %1 = load <4 x i16>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i16> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i16>, ptr %__constexpr_2, align 8
  %4 = sitofp <4 x i16> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 8
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <4 x i16>, ptr %__constexpr_6, align 16
  %6 = sitofp <4 x i16> %5 to <4 x float>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <4 x float> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src16, 64 x i32 0, 2 x i64 12
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <4 x i16>, ptr %__constexpr_10, align 8
  %8 = sitofp <4 x i16> %7 to <4 x float>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <4 x float> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i8_4f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %__constexpr_2 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %ld2 = load i8, ptr %__constexpr_2, align 2
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 3
  %ld3 = load i8, ptr %__constexpr_3, align 1
  %cvt0 = sitofp i8 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i8 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i8 %ld3 to float, exceptions=ignore
  %__constexpr_4 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_4, align 64
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_5, align 4
  %__constexpr_6 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_6, align 8
  %__constexpr_7 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_7, align 4
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_4i8_4f32() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <4 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i8> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i8_8f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %__constexpr_2 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %ld2 = load i8, ptr %__constexpr_2, align 2
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 3
  %ld3 = load i8, ptr %__constexpr_3, align 1
  %__constexpr_4 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %ld4 = load i8, ptr %__constexpr_4, align 4
  %__constexpr_5 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 5
  %ld5 = load i8, ptr %__constexpr_5, align 1
  %__constexpr_6 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 6
  %ld6 = load i8, ptr %__constexpr_6, align 2
  %__constexpr_7 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 7
  %ld7 = load i8, ptr %__constexpr_7, align 1
  %cvt0 = sitofp i8 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i8 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i8 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i8 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i8 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i8 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i8 %ld7 to float, exceptions=ignore
  %__constexpr_8 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_8, align 64
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_9, align 4
  %__constexpr_10 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_10, align 8
  %__constexpr_11 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_11, align 4
  %__constexpr_12 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_12, align 16
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_13, align 4
  %__constexpr_14 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_14, align 8
  %__constexpr_15 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_15, align 4
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_8i8_8f32() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <4 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i8> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i8>, ptr %__constexpr_2, align 4
  %4 = sitofp <4 x i8> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  ret void
}
Transformation seems to be correct!


----------------------------------------
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i8_16f32() {
%0:
  %__constexpr_0 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 0
  %ld0 = load i8, ptr %__constexpr_0, align 64
  %__constexpr_1 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 1
  %ld1 = load i8, ptr %__constexpr_1, align 1
  %__constexpr_2 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 2
  %ld2 = load i8, ptr %__constexpr_2, align 2
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 3
  %ld3 = load i8, ptr %__constexpr_3, align 1
  %__constexpr_4 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %ld4 = load i8, ptr %__constexpr_4, align 4
  %__constexpr_5 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 5
  %ld5 = load i8, ptr %__constexpr_5, align 1
  %__constexpr_6 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 6
  %ld6 = load i8, ptr %__constexpr_6, align 2
  %__constexpr_7 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 7
  %ld7 = load i8, ptr %__constexpr_7, align 1
  %__constexpr_8 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 8
  %ld8 = load i8, ptr %__constexpr_8, align 8
  %__constexpr_9 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 9
  %ld9 = load i8, ptr %__constexpr_9, align 1
  %__constexpr_10 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 10
  %ld10 = load i8, ptr %__constexpr_10, align 2
  %__constexpr_11 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 11
  %ld11 = load i8, ptr %__constexpr_11, align 1
  %__constexpr_12 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 12
  %ld12 = load i8, ptr %__constexpr_12, align 4
  %__constexpr_13 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 13
  %ld13 = load i8, ptr %__constexpr_13, align 1
  %__constexpr_14 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 14
  %ld14 = load i8, ptr %__constexpr_14, align 2
  %__constexpr_15 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 15
  %ld15 = load i8, ptr %__constexpr_15, align 1
  %cvt0 = sitofp i8 %ld0 to float, exceptions=ignore
  %cvt1 = sitofp i8 %ld1 to float, exceptions=ignore
  %cvt2 = sitofp i8 %ld2 to float, exceptions=ignore
  %cvt3 = sitofp i8 %ld3 to float, exceptions=ignore
  %cvt4 = sitofp i8 %ld4 to float, exceptions=ignore
  %cvt5 = sitofp i8 %ld5 to float, exceptions=ignore
  %cvt6 = sitofp i8 %ld6 to float, exceptions=ignore
  %cvt7 = sitofp i8 %ld7 to float, exceptions=ignore
  %cvt8 = sitofp i8 %ld8 to float, exceptions=ignore
  %cvt9 = sitofp i8 %ld9 to float, exceptions=ignore
  %cvt10 = sitofp i8 %ld10 to float, exceptions=ignore
  %cvt11 = sitofp i8 %ld11 to float, exceptions=ignore
  %cvt12 = sitofp i8 %ld12 to float, exceptions=ignore
  %cvt13 = sitofp i8 %ld13 to float, exceptions=ignore
  %cvt14 = sitofp i8 %ld14 to float, exceptions=ignore
  %cvt15 = sitofp i8 %ld15 to float, exceptions=ignore
  %__constexpr_16 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 0
  store float %cvt0, ptr %__constexpr_16, align 64
  %__constexpr_17 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 1
  store float %cvt1, ptr %__constexpr_17, align 4
  %__constexpr_18 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 2
  store float %cvt2, ptr %__constexpr_18, align 8
  %__constexpr_19 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 3
  store float %cvt3, ptr %__constexpr_19, align 4
  %__constexpr_20 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  store float %cvt4, ptr %__constexpr_20, align 16
  %__constexpr_21 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 5
  store float %cvt5, ptr %__constexpr_21, align 4
  %__constexpr_22 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 6
  store float %cvt6, ptr %__constexpr_22, align 8
  %__constexpr_23 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 7
  store float %cvt7, ptr %__constexpr_23, align 4
  %__constexpr_24 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  store float %cvt8, ptr %__constexpr_24, align 32
  %__constexpr_25 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 9
  store float %cvt9, ptr %__constexpr_25, align 4
  %__constexpr_26 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 10
  store float %cvt10, ptr %__constexpr_26, align 8
  %__constexpr_27 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 11
  store float %cvt11, ptr %__constexpr_27, align 4
  %__constexpr_28 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  store float %cvt12, ptr %__constexpr_28, align 16
  %__constexpr_29 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 13
  store float %cvt13, ptr %__constexpr_29, align 4
  %__constexpr_30 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 14
  store float %cvt14, ptr %__constexpr_30, align 8
  %__constexpr_31 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 15
  store float %cvt15, ptr %__constexpr_31, align 4
  ret void
}
=>
@src8 = global 64 bytes, align 64
@dst32 = global 64 bytes, align 64

define void @sitofp_16i8_16f32() {
%0:
  %__constexpr_0 = bitcast ptr @src8 to ptr
  %1 = load <4 x i8>, ptr %__constexpr_0, align 64
  %2 = sitofp <4 x i8> %1 to <4 x float>, exceptions=ignore
  %__constexpr_1 = bitcast ptr @dst32 to ptr
  store <4 x float> %2, ptr %__constexpr_1, align 64
  %__constexpr_3 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 4
  %__constexpr_2 = bitcast ptr %__constexpr_3 to ptr
  %3 = load <4 x i8>, ptr %__constexpr_2, align 4
  %4 = sitofp <4 x i8> %3 to <4 x float>, exceptions=ignore
  %__constexpr_5 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 4
  %__constexpr_4 = bitcast ptr %__constexpr_5 to ptr
  store <4 x float> %4, ptr %__constexpr_4, align 16
  %__constexpr_7 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 8
  %__constexpr_6 = bitcast ptr %__constexpr_7 to ptr
  %5 = load <4 x i8>, ptr %__constexpr_6, align 8
  %6 = sitofp <4 x i8> %5 to <4 x float>, exceptions=ignore
  %__constexpr_9 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 8
  %__constexpr_8 = bitcast ptr %__constexpr_9 to ptr
  store <4 x float> %6, ptr %__constexpr_8, align 32
  %__constexpr_11 = gep inbounds ptr @src8, 64 x i32 0, 1 x i64 12
  %__constexpr_10 = bitcast ptr %__constexpr_11 to ptr
  %7 = load <4 x i8>, ptr %__constexpr_10, align 4
  %8 = sitofp <4 x i8> %7 to <4 x float>, exceptions=ignore
  %__constexpr_13 = gep inbounds ptr @dst32, 64 x i32 0, 4 x i64 12
  %__constexpr_12 = bitcast ptr %__constexpr_13 to ptr
  store <4 x float> %8, ptr %__constexpr_12, align 16
  ret void
}
Transformation seems to be correct!


----------------------------------------
define <4 x double> @sitofp_4xi32_4f64(i32 %a0, i32 %a1, i32 %a2, i32 %a3) {
%0:
  %cvt0 = sitofp i32 %a0 to double, exceptions=ignore
  %cvt1 = sitofp i32 %a1 to double, exceptions=ignore
  %cvt2 = sitofp i32 %a2 to double, exceptions=ignore
  %cvt3 = sitofp i32 %a3 to double, exceptions=ignore
  %res0 = insertelement <4 x double> undef, double %cvt0, i32 0
  %res1 = insertelement <4 x double> %res0, double %cvt1, i32 1
  %res2 = insertelement <4 x double> %res1, double %cvt2, i32 2
  %res3 = insertelement <4 x double> %res2, double %cvt3, i32 3
  ret <4 x double> %res3
}
=>
define <4 x double> @sitofp_4xi32_4f64(i32 %a0, i32 %a1, i32 %a2, i32 %a3) {
%0:
  %1 = insertelement <2 x i32> poison, i32 %a0, i32 0
  %2 = insertelement <2 x i32> %1, i32 %a1, i32 1
  %3 = sitofp <2 x i32> %2 to <2 x double>, exceptions=ignore
  %4 = insertelement <2 x i32> poison, i32 %a2, i32 0
  %5 = insertelement <2 x i32> %4, i32 %a3, i32 1
  %6 = sitofp <2 x i32> %5 to <2 x double>, exceptions=ignore
  %7 = shufflevector <2 x double> %3, <2 x double> poison, 0, 1, 4294967295, 4294967295
  %8 = shufflevector <2 x double> %6, <2 x double> poison, 0, 1, 4294967295, 4294967295
  %res31 = shufflevector <4 x double> %7, <4 x double> %8, 0, 1, 4, 5
  ret <4 x double> %res31
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define <4 x double> @sitofp_with_const_4xi32_4f64(i32 %a2, i32 %a3) {
%0:
  %cvt2 = sitofp i32 %a2 to double, exceptions=ignore
  %cvt3 = sitofp i32 %a3 to double, exceptions=ignore
  %res0 = insertelement <4 x double> undef, double 1.000000, i32 3
  %res2 = insertelement <4 x double> %res0, double %cvt2, i32 0
  %res3 = insertelement <4 x double> %res2, double %cvt3, i32 1
  ret <4 x double> %res3
}
=>
define <4 x double> @sitofp_with_const_4xi32_4f64(i32 %a2, i32 %a3) {
%0:
  %1 = insertelement <2 x i32> poison, i32 %a2, i32 0
  %2 = insertelement <2 x i32> %1, i32 %a3, i32 1
  %3 = sitofp <2 x i32> %2 to <2 x double>, exceptions=ignore
  %res0 = insertelement <4 x double> undef, double 1.000000, i32 3
  %4 = shufflevector <2 x double> %3, <2 x double> poison, 0, 1, 4294967295, 4294967295
  %res31 = shufflevector <4 x double> %res0, <4 x double> %4, 4, 5, 2, 3
  ret <4 x double> %res31
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define <4 x double> @sitofp_with_undef_4xi32_4f64(i32 %a2, i32 %a3) {
%0:
  %cvt2 = sitofp i32 %a2 to double, exceptions=ignore
  %cvt3 = sitofp i32 %a3 to double, exceptions=ignore
  %res2 = insertelement <4 x double> undef, double %cvt2, i32 0
  %res3 = insertelement <4 x double> %res2, double %cvt3, i32 1
  ret <4 x double> %res3
}
=>
define <4 x double> @sitofp_with_undef_4xi32_4f64(i32 %a2, i32 %a3) {
%0:
  %1 = insertelement <2 x i32> poison, i32 %a2, i32 0
  %2 = insertelement <2 x i32> %1, i32 %a3, i32 1
  %3 = sitofp <2 x i32> %2 to <2 x double>, exceptions=ignore
  %4 = shufflevector <2 x double> %3, <2 x double> poison, 0, 1, 4294967295, 4294967295
  ret <4 x double> %4
}
Transformation doesn't verify!
ERROR: Target is more poisonous than source

Example:
i32 %a2 = poison
i32 %a3 = poison

Source:
double %cvt2 = poison
double %cvt3 = poison
<4 x double> %res2 = < poison, NaN	[based on undef value], NaN, NaN >
<4 x double> %res3 = < poison, poison, NaN, NaN >

Target:
<2 x i32> %1 = < poison, poison >
<2 x i32> %2 = < poison, poison >
<2 x double> %3 = < poison, poison >
<4 x double> %4 = < poison, poison, poison, poison >
Source value: < poison, poison, NaN, NaN >
Target value: < poison, poison, poison, poison >


------------------- SMT STATS -------------------
Num queries: 114
Num invalid: 0
Num skips:   0
Num trivial: 113 (49.8%)
Num timeout: 13 (11.4%)
Num errors:  0 (0.0%)
Num SAT:     88 (77.2%)
Num UNSAT:   13 (11.4%)
Alive2: Transform doesn't verify; aborting!

stderr:

+ : 'RUN: at line 2'
+ /tmp/nlopes/llvm/build/bin/FileCheck /tmp/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll --check-prefixes=CHECK,SSE
+ /home/nlopes/alive2/build/opt-alive.sh -mtriple=x86_64-unknown -basic-aa -slp-vectorizer -S

FileCheck error: '<stdin>' is empty.
FileCheck command line:  /tmp/nlopes/llvm/build/bin/FileCheck /tmp/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll --check-prefixes=CHECK,SSE

 

<-- Back