blob: b5535ccfaad14f67fcdeeac446b2b7847f7da1da [file] [edit]
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-llvm %s -o %t-cir.ll
// RUN: FileCheck --check-prefix=LLVM --input-file=%t-cir.ll %s
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o %t.ll
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s
void high_byte_to_signed_char(void) {
signed char c = '\xFF';
(void)c;
}
// CIR-LABEL: cir.func{{.*}} @high_byte_to_signed_char
// CIR: %[[VAL:.*]] = cir.const #cir.int<-1> : !s8i
// CIR: cir.store{{.*}} %[[VAL]], %{{.*}} : !s8i, !cir.ptr<!s8i>
// LLVM-LABEL: define{{.*}} void @high_byte_to_signed_char
// LLVM: store i8 -1, ptr %{{.*}}
void boundary_byte(void) {
signed char c = '\x80';
(void)c;
}
// CIR-LABEL: cir.func{{.*}} @boundary_byte
// CIR: %[[VAL:.*]] = cir.const #cir.int<-128> : !s8i
// CIR: cir.store{{.*}} %[[VAL]], %{{.*}} : !s8i, !cir.ptr<!s8i>
// LLVM-LABEL: define{{.*}} void @boundary_byte
// LLVM: store i8 -128, ptr %{{.*}}
void low_byte(void) {
signed char c = 'A';
(void)c;
}
// CIR-LABEL: cir.func{{.*}} @low_byte
// CIR: %[[VAL:.*]] = cir.const #cir.int<65> : !s8i
// CIR: cir.store{{.*}} %[[VAL]], %{{.*}} : !s8i, !cir.ptr<!s8i>
// LLVM-LABEL: define{{.*}} void @low_byte
// LLVM: store i8 65, ptr %{{.*}}
void high_byte_to_unsigned_char(void) {
unsigned char c = '\xFF';
(void)c;
}
// CIR-LABEL: cir.func{{.*}} @high_byte_to_unsigned_char
// CIR: %[[VAL:.*]] = cir.const #cir.int<255> : !u8i
// CIR: cir.store{{.*}} %[[VAL]], %{{.*}} : !u8i, !cir.ptr<!u8i>
// LLVM-LABEL: define{{.*}} void @high_byte_to_unsigned_char
// LLVM: store i8 -1, ptr %{{.*}}