[llvm-commits] [llvm] r64693 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/enforce-known-alignment.ll
Dan Gohman
gohman at apple.com
Mon Feb 16 15:02:21 PST 2009
Author: djg
Date: Mon Feb 16 17:02:21 2009
New Revision: 64693
URL: http://llvm.org/viewvc/llvm-project?rev=64693&view=rev
Log:
Fix EnforceKnownAlignment so that it doesn't ever reduce the alignment
of an alloca or global variable.
Added:
llvm/trunk/test/Transforms/InstCombine/enforce-known-alignment.ll
Modified:
llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=64693&r1=64692&r2=64693&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Feb 16 17:02:21 2009
@@ -9237,15 +9237,23 @@
// If there is a large requested alignment and we can, bump up the alignment
// of the global.
if (!GV->isDeclaration()) {
- GV->setAlignment(PrefAlign);
- Align = PrefAlign;
+ if (GV->getAlignment() >= PrefAlign)
+ Align = GV->getAlignment();
+ else {
+ GV->setAlignment(PrefAlign);
+ Align = PrefAlign;
+ }
}
} else if (AllocationInst *AI = dyn_cast<AllocationInst>(V)) {
// If there is a requested alignment and if this is an alloca, round up. We
// don't do this for malloc, because some systems can't respect the request.
if (isa<AllocaInst>(AI)) {
- AI->setAlignment(PrefAlign);
- Align = PrefAlign;
+ if (AI->getAlignment() >= PrefAlign)
+ Align = AI->getAlignment();
+ else {
+ AI->setAlignment(PrefAlign);
+ Align = PrefAlign;
+ }
}
}
Added: llvm/trunk/test/Transforms/InstCombine/enforce-known-alignment.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/enforce-known-alignment.ll?rev=64693&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/enforce-known-alignment.ll (added)
+++ llvm/trunk/test/Transforms/InstCombine/enforce-known-alignment.ll Mon Feb 16 17:02:21 2009
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep alloca | grep {align 16}
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
+target triple = "i386-apple-darwin9.6"
+
+define void @foo(<{ { [4 x i32] }, i32, i32, i32, i8, i8, i8, i8, i8, [3 x i8], { i8, i8, i8, i8, [4 x i32], [4 x i32], [4 x i32], i8, i8, i8, i8, i8, i8 }*, <{ i8, i8, i8, i8, i8, i8, [2 x i8], i32, [4 x i8], <{ [16 x { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } }], i8, [15 x i8] }>, { i8, i8, [16 x i8], [4 x i8], [16 x i8], [4 x i8] }, [2 x i8], i32, i32, i32, i32, i32, i32, i32, i32, [2 x [16 x [3 x i32]]], [2 x [16 x [3 x i32]]], [2 x [16 x [16 x [3 x i32]]]], [1 x i32] }>*, <{ <{ { [16 x i16] }, { [256 x i16] } }>, <{ { [64 x i16] }, { [64 x i16] }, { [8 x i16] } }> }>*, i8*, { [2 x { { i32 } }], [2 x i8], i8, [2 x i32], i32, i32, i32 }*, { [2 x { { i32 } }], [2 x i8], i8, [2 x i32], i32, i32, i32 }*, { [2 x { { i32 } }], [2 x i8], i8, [2 x i32], i32, i32, i32 }*, i32, i32, i32, i32, i32, i32, { [34 x <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*]!
, [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i3!
2, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i!
8*, i32,
i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*], [34 x <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i3!
2, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, !
i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float,!
i8*, i3
2*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*], [34 x i32], [34 x i32], [2 x i32], [2 x i32], <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32!
, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i!
32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32,!
i32, i8
}, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>* }*, i32**, opaque*, [5 x <{ i32, [7 x i32], <{ { [16 x i8] } }>, <{ { [16 x i8] } }>, i8, [15 x i8], <{ { [16 x i8] }, [4 x i8], [4 x i8], [2 x i32] }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, { i8, i8, i8, i8, i8, i8, i8, [16 x i8], i8, i8, i64, [2 x [16 x [!
2 x i16]]], [2 x [16 x i8]], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, i32 }, [16 x i32] }>*], <{ i32, [7 x i32], <{ { [16 x i8] } }>, <{ { [16 x i8] } }>, i8, [15 x i8], <{ { [16 x i8] }, [4 x i8], [4 x i8], [2 x i32] }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, { i8, i8, i8, i8, i8, i8, i8, [16 x i8], i8, i8, i64, [2 x [16 x [2 x i16]]], [2 x [16 x i8]], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, i32 }, [16 x i32] }>*, i8, i8, i8, i8, i8, [3 x i8], i8*, i8*, i8*, <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [!
21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ { !
{ [2 x {
{ i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i!
16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*, [2 x <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <!
{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 }!
} }>*,
<{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, {!
i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>**], [2 x i32], [2 x i32], [33 x i8]*, [41 x i8]*, <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ { { [2 x { { !
i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { !
[2 x { {
i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32,!
double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*, { <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, i32, i32, i32, i32, i32*, { { i32, i32 }, i8, i8, i8, i8, [17 x <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32],!
[21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{ { <{ !
{ { [2 x
{ { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32,!
i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*], [17 x <{ i8, i8, i8, i8, i8, [3 x i8], i8*, i32, opaque*, opaque*, i32, opaque*, opaque*, [12 x i8], <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>, <{!
{ <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, !
i8 } } }
>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* }**, i32, i32, [4 x i8], <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>**, [3 x i32] }>, { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, \3, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8 } }, i32, { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }, { i32, i32, { i32, i32, i32, i32, [16 x { i32, { { i16 } }, i32, i32, [2 x { { i32 } }], [2 x i8], i16 }] }*, i32, i32, i32, i32, i32 }, { i32, i32, i32, { [2 x i8], [2 x { { i32 } }], i8, [3 x { i32, i16, i16 }] }*, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i!
8, { i32, i32, i32, double }, { i32, i32, i32, double } }*, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }, { i32, float, i8, i8 }, { i8, i8, i32, i8, i8, float }, { i32, i32, i32, i32, { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }, { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, { { i32 } }, { { i32 } } } }, { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }, [1 x i32] }>*] }*, i32, opaque*, i16*, <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i32, i8* }, opaque*, [16 x i16], [16 x i16], [12 x i8], { [4 x i32] }, { [4 x i32] }, { [21 x i32], [21 x i32], [4 x [21 x i32]] }, <{ i16 }>*, i32* }>*, i8*, i8*, i8*, i8*, i8*, { [16 x i8], [16 x i8] }*, opaque*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i!
8 }*, double, [16 x { i32, i32, i32, { i16* }, { [1 x i16*], [!
2 x i16*
], [2 x i16*], [4 x i16*], [8 x i16*], [8 x i16*], [16 x i16*] }, i32, [64 x { { { i32 } }, i8 }], { i16* }, [64 x { [1 x i16*], [2 x i16*], [2 x i16*], [4 x i16*], [8 x i16*], [8 x i16*], [16 x i16*] }], { i16* }, { i16* }, i32, [20 x { { i8, { { i16 } }, { { i32 } } }, i32, { { i32 } } }] }], [16 x { i32, i32, i32, { i16* }, { [1 x i16*], [2 x i16*], [2 x i16*], [4 x i16*], [8 x i16*], [8 x i16*], [16 x i16*] }, i32, [64 x { { { i32 } }, i8 }], { i16* }, [64 x { [1 x i16*], [2 x i16*], [2 x i16*], [4 x i16*], [8 x i16*], [8 x i16*], [16 x i16*] }], { i16* }, { i16* }, i32, [20 x { { i8, { { i16 } }, { { i32 } } }, i32, { { i32 } } }] }], { i8* }, { i8* }, i8, i8, [6 x [16 x i8]], [2 x [64 x i8]], [6 x [16 x i8]], [2 x [64 x i8]], [2 x i8], { i8* }, { i8* }, <{ i8, [15 x i8], [4 x <{ [16 x i8], <{ i8 }>, [3 x i8], i32, i32, [4 x i8], { [256 x i8] }, { [256 x i16] }, { [256 x i16] }, <{ <{ { [16 x i16] }, { [256 x i16] } }>, <{ { [64 x i16] }, { [64 x i16] }, { [8 x i16] } }!
> }> }>] }>*, <{ i8, [15 x i8], [2 x <{ i8, <{ i8 }>, i8, i8, i32, i32, [4 x i8], { [128 x i8] }, { [128 x i16] }, { [128 x i16] }, <{ { [64 x i16] }, { [64 x i16] }, { [8 x i16] } }> }>] }>*, { i32, i32, i32, double }, { i32, i32, i32, double }, <{ [16 x i8], <{ i8 }>, [3 x i8], i32, i32, [4 x i8], { [256 x i8] }, { [256 x i16] }, { [256 x i16] }, <{ <{ { [16 x i16] }, { [256 x i16] } }>, <{ { [64 x i16] }, { [64 x i16] }, { [8 x i16] } }> }> }>*, <{ i8, <{ i8 }>, i8, i8, i32, i32, [4 x i8], { [128 x i8] }, { [128 x i16] }, { [128 x i16] }, <{ { [64 x i16] }, { [64 x i16] }, { [8 x i16] } }> }>*, <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*, i32, i32, i32, i32, i32, i32, i32 }>*) {
+ %2 = alloca [3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>], align 16 ; <[3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>]*> [#uses=1]
+ %3 = getelementptr [3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>]* %2, i32 0, i32 0 ; <<{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*> [#uses=1]
+ %4 = getelementptr <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* %3, i32 0, i32 0 ; <{ { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } }*> [#uses=1]
+ %5 = getelementptr { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } }* %4, i32 0, i32 0 ; <{ [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 }*> [#uses=1]
+ %6 = bitcast { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 }* %5 to { [8 x i16] }* ; <{ [8 x i16] }*> [#uses=1]
+ %7 = getelementptr { [8 x i16] }* %6, i32 0, i32 0 ; <[8 x i16]*> [#uses=1]
+ %8 = getelementptr [8 x i16]* %7, i32 0, i32 0 ; <i16*> [#uses=1]
+ store i16 0, i16* %8, align 16
+ call void @bar(i16* %8)
+ ret void
+}
+
+declare void @bar(i16*)
More information about the llvm-commits
mailing list