17 lines · c
1// FIXME: 32-bit target?2// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -emit-llvm -o - | FileCheck %s3// PR17214 5struct s {6 unsigned long long u33: 33;7} a, b;8 9// This should have %0 and %1 truncated to 33 bits before any operation.10// This can be done using i33 or an explicit and.11_Bool test(void) {12 // CHECK: and i64 %[[TMP1:[^,]+]], 858993459113 // CHECK-NOT: and i64 [[TMP1]], 858993459114 // CHECK: and i64 %{{[^,]+}}, 858993459115 return a.u33 + b.u33 != 0;16}17