19e0d3878SVadzim Dambrouski; RUN: llc < %s | FileCheck %s 29e0d3878SVadzim Dambrouski 39e0d3878SVadzim Dambrouskitarget triple = "msp430" 49e0d3878SVadzim Dambrouski 59e0d3878SVadzim Dambrouski%struct.X = type { i8 } 69e0d3878SVadzim Dambrouski 79e0d3878SVadzim Dambrouski; CHECK-LABEL: @foo 8*49045c6aSAnton Korobeynikov; CHECK: sub #4, r1 99e0d3878SVadzim Dambrouski; CHECK: mov.b #1, 3(r1) 109e0d3878SVadzim Dambrouskidefine void @foo() { 119e0d3878SVadzim Dambrouski %1 = alloca %struct.X 129e0d3878SVadzim Dambrouski %2 = alloca %struct.X 139e0d3878SVadzim Dambrouski %3 = alloca %struct.X 149e0d3878SVadzim Dambrouski %4 = getelementptr inbounds %struct.X, %struct.X* %1, i32 0, i32 0 159e0d3878SVadzim Dambrouski store i8 1, i8* %4 169e0d3878SVadzim Dambrouski %5 = getelementptr inbounds %struct.X, %struct.X* %2, i32 0, i32 0 179e0d3878SVadzim Dambrouski store i8 1, i8* %5 189e0d3878SVadzim Dambrouski %6 = getelementptr inbounds %struct.X, %struct.X* %3, i32 0, i32 0 199e0d3878SVadzim Dambrouski store i8 1, i8* %6 209e0d3878SVadzim Dambrouski ret void 219e0d3878SVadzim Dambrouski} 229e0d3878SVadzim Dambrouski 239e0d3878SVadzim Dambrouski; CHECK-LABEL: @bar 24*49045c6aSAnton Korobeynikov; CHECK: sub #4, r1 259e0d3878SVadzim Dambrouski; CHECK: mov.b #1, 3(r1) 269e0d3878SVadzim Dambrouskidefine void @bar() { 279e0d3878SVadzim Dambrouski %1 = alloca [3 x %struct.X] 289e0d3878SVadzim Dambrouski %2 = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* %1, i16 0, i16 0 299e0d3878SVadzim Dambrouski %3 = getelementptr inbounds %struct.X, %struct.X* %2, i32 0, i32 0 309e0d3878SVadzim Dambrouski store i8 1, i8* %3 319e0d3878SVadzim Dambrouski %4 = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* %1, i16 0, i16 1 329e0d3878SVadzim Dambrouski %5 = getelementptr inbounds %struct.X, %struct.X* %4, i32 0, i32 0 339e0d3878SVadzim Dambrouski store i8 1, i8* %5 349e0d3878SVadzim Dambrouski %6 = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* %1, i16 0, i16 2 359e0d3878SVadzim Dambrouski %7 = getelementptr inbounds %struct.X, %struct.X* %6, i32 0, i32 0 369e0d3878SVadzim Dambrouski store i8 1, i8* %7 379e0d3878SVadzim Dambrouski ret void 389e0d3878SVadzim Dambrouski} 399e0d3878SVadzim Dambrouski 409e0d3878SVadzim Dambrouski%struct.Y = type { i8, i16 } 419e0d3878SVadzim Dambrouski 429e0d3878SVadzim Dambrouski; CHECK-LABEL: @baz 43*49045c6aSAnton Korobeynikov; CHECK: sub #8, r1 44*49045c6aSAnton Korobeynikov; CHECK: mov #2, 6(r1) 459e0d3878SVadzim Dambrouskidefine void @baz() { 469e0d3878SVadzim Dambrouski %1 = alloca %struct.Y, align 2 479e0d3878SVadzim Dambrouski %2 = alloca %struct.Y, align 2 489e0d3878SVadzim Dambrouski %3 = getelementptr inbounds %struct.Y, %struct.Y* %1, i32 0, i32 0 499e0d3878SVadzim Dambrouski store i8 1, i8* %3, align 2 509e0d3878SVadzim Dambrouski %4 = getelementptr inbounds %struct.Y, %struct.Y* %1, i32 0, i32 1 519e0d3878SVadzim Dambrouski store i16 2, i16* %4, align 2 529e0d3878SVadzim Dambrouski %5 = getelementptr inbounds %struct.Y, %struct.Y* %2, i32 0, i32 0 539e0d3878SVadzim Dambrouski store i8 1, i8* %5, align 2 549e0d3878SVadzim Dambrouski %6 = getelementptr inbounds %struct.Y, %struct.Y* %2, i32 0, i32 1 559e0d3878SVadzim Dambrouski store i16 2, i16* %6, align 2 569e0d3878SVadzim Dambrouski ret void 579e0d3878SVadzim Dambrouski} 58