1*67e74705SXin Li // RUN: %clang -O3 -emit-llvm -S -o - %s | FileCheck %s 2*67e74705SXin Li f0(void)3*67e74705SXin Lilong long f0(void) { 4*67e74705SXin Li struct { unsigned f0 : 32; } x = { 18 }; 5*67e74705SXin Li return (long long) (x.f0 - (int) 22); 6*67e74705SXin Li } 7*67e74705SXin Li // CHECK: @f0() 8*67e74705SXin Li // CHECK: ret i64 4294967292 9*67e74705SXin Li f1(void)10*67e74705SXin Lilong long f1(void) { 11*67e74705SXin Li struct { unsigned f0 : 31; } x = { 18 }; 12*67e74705SXin Li return (long long) (x.f0 - (int) 22); 13*67e74705SXin Li } 14*67e74705SXin Li // CHECK: @f1() 15*67e74705SXin Li // CHECK: ret i64 -4 16*67e74705SXin Li f2(void)17*67e74705SXin Lilong long f2(void) { 18*67e74705SXin Li struct { unsigned f0 ; } x = { 18 }; 19*67e74705SXin Li return (long long) (x.f0 - (int) 22); 20*67e74705SXin Li } 21*67e74705SXin Li // CHECK: @f2() 22*67e74705SXin Li // CHECK: ret i64 4294967292 23