// 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 // 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 // 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 // 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 // LLVM-LABEL: define{{.*}} void @high_byte_to_unsigned_char // LLVM: store i8 -1, ptr %{{.*}}