[InstCombine] allow any pair of bitcasts to be combined
[oota-llvm.git] / test / Transforms / StraightLineStrengthReduce / AMDGPU / pr23975.ll
1 ; RUN: opt < %s -slsr -S | FileCheck %s
2
3 target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-p24:64:64-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
4 target triple = "amdgcn--"
5
6 %struct.Matrix4x4 = type { [4 x [4 x float]] }
7
8 ; Function Attrs: nounwind
9 define fastcc void @Accelerator_Intersect(%struct.Matrix4x4 addrspace(1)* nocapture readonly %leafTransformations) #0 {
10 ; CHECK-LABEL:  @Accelerator_Intersect(
11 entry:
12   %tmp = sext i32 undef to i64
13   %arrayidx114 = getelementptr inbounds %struct.Matrix4x4, %struct.Matrix4x4 addrspace(1)* %leafTransformations, i64 %tmp
14   %tmp1 = getelementptr %struct.Matrix4x4, %struct.Matrix4x4 addrspace(1)* %leafTransformations, i64 %tmp, i32 0, i64 0, i64 0
15 ; CHECK: %tmp1 = getelementptr %struct.Matrix4x4, %struct.Matrix4x4 addrspace(1)* %leafTransformations, i64 %tmp, i32 0, i64 0, i64 0
16   %tmp2 = load <4 x float>, <4 x float> addrspace(1)* undef, align 4
17   ret void
18 }
19
20 attributes #0 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "target-cpu"="tahiti" "unsafe-fp-math"="false" "use-soft-float"="false" }