// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
// rdar://9894548

typedef unsigned long word_t;
typedef unsigned long u64_t;
typedef unsigned int u32_t;

class ioapic_redir_t {
public:
 union {
  struct {
   word_t vector : 8;

   word_t delivery_mode : 3;
   word_t dest_mode : 1;

   word_t delivery_status : 1;
   word_t polarity : 1;
   word_t irr : 1;
   word_t trigger_mode : 1;

   word_t mask : 1;
   word_t _pad0 : 15;

   word_t dest : 8;
  };
  volatile u32_t raw[2];
  volatile u64_t raw64;
 };
};

struct ioapic_shadow_struct
{
 ioapic_redir_t redirs[24];
} ioapic_shadow[16];

void init_ioapic(unsigned long ioapic_id)
{
     ioapic_redir_t entry;
     ioapic_shadow[ioapic_id].redirs[3] = entry;
}

// CHECK: call void @llvm.memcpy
