Fariborz Jahanian | 6b167f4 | 2011-08-09 00:26:11 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s |
| 2 | // rdar://9894548 |
| 3 | |
| 4 | typedef unsigned long word_t; |
| 5 | typedef unsigned long u64_t; |
| 6 | typedef unsigned int u32_t; |
| 7 | |
| 8 | class ioapic_redir_t { |
| 9 | public: |
| 10 | union { |
| 11 | struct { |
| 12 | word_t vector : 8; |
| 13 | |
| 14 | word_t delivery_mode : 3; |
| 15 | word_t dest_mode : 1; |
| 16 | |
| 17 | word_t delivery_status : 1; |
| 18 | word_t polarity : 1; |
| 19 | word_t irr : 1; |
| 20 | word_t trigger_mode : 1; |
| 21 | |
| 22 | word_t mask : 1; |
| 23 | word_t _pad0 : 15; |
| 24 | |
| 25 | word_t dest : 8; |
| 26 | }; |
| 27 | volatile u32_t raw[2]; |
| 28 | volatile u64_t raw64; |
| 29 | }; |
| 30 | }; |
| 31 | |
| 32 | struct ioapic_shadow_struct |
| 33 | { |
| 34 | ioapic_redir_t redirs[24]; |
| 35 | } ioapic_shadow[16]; |
| 36 | |
| 37 | void init_ioapic(unsigned long ioapic_id) |
| 38 | { |
| 39 | ioapic_redir_t entry; |
| 40 | ioapic_shadow[ioapic_id].redirs[3] = entry; |
| 41 | } |
| 42 | |
| 43 | // CHECK: call void @llvm.memcpy |