| // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -O1 -load-bool-from-mem=truncate -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK-TRUNCATE | |
| // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -O1 -load-bool-from-mem=nonzero -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK-NONZERO | |
| // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -O0 -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK-NONZERO | |
| typedef bool bool8_t __attribute__((ext_vector_type(8))); | |
| extern bool8_t vec; | |
| bool8_t getvec(void) { | |
| // CHECK-TRUNCATE: [[BOOL:%.+]] = load <8 x i32> | |
| // CHECK-TRUNCATE: trunc <8 x i32> [[BOOL]] to <8 x i1> | |
| // CHECK-NONZERO: [[BOOL:%.+]] = load <8 x i32> | |
| // CHECK-NONZERO: icmp ne <8 x i32> [[BOOL]], zeroinitializer | |
| return vec; | |
| } |