// RUN: %clang_cc1 -triple armebv7-arm-none-eabi -emit-llvm -w -o - %s | FileCheck %s
// this tests for AAPCS section 5.4:
// A Composite Type not larger than 4 bytes is returned in r0.
// The format is as if the result had been stored in memory at a
// word-aligned address and then loaded into r0 with an LDR instruction
extern us;
union Us
// CHECK-LABEL: callee_us()
// CHECK: zext i16
// CHECK: shl
// CHECK: ret i32
void
extern ss;
struct Ss
// CHECK-LABEL: callee_ss()
// CHECK: zext i16
// CHECK: shl
// CHECK: ret i32
void