blob: 4d0639ca499a86fd9eacf7ca1fd3377469e2286d [file] [log] [blame]
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true < %s
;
; Check we do not crash even though we pre-load values with different types
; from the same base pointer.
;
target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"
%struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90 = type { i32, float, i32*, float* }
; Function Attrs: nounwind ssp
define void @ff_iir_filter(%struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90* %c, i16* %dst, i32 %dstep) #0 {
entry:
br i1 undef, label %if.end.325, label %for.body.38
for.body.38: ; preds = %for.body.38, %entry
%dst034.0180 = phi i16* [ undef, %for.body.38 ], [ %dst, %entry ]
%gain42 = getelementptr inbounds %struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90, %struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90* %c, i32 0, i32 1
%cy44 = getelementptr inbounds %struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90, %struct.FFIIRFilterCoeffs.0.3.6.12.15.27.36.54.57.84.87.90* %c, i32 0, i32 3
%add.ptr88 = getelementptr inbounds i16, i16* %dst034.0180, i32 %dstep
store i16 undef, i16* %add.ptr88, align 2
%0 = load float, float* %gain42, align 4
%1 = load float*, float** %cy44, align 4
br i1 false, label %for.body.38, label %if.end.325
if.end.325: ; preds = %for.body.38, %entry
ret void
}