diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp index a5e397a518e67..5f2771fbd268c 100644 --- a/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp @@ -74,7 +74,7 @@ static mlir::Value emitVectorFCmp(CIRGenBuilderTy &builder, static mlir::Value getMaskVecValue(CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value mask, unsigned numElems) { auto maskTy = cir::VectorType::get( - builder.getUIntNTy(1), cast(mask.getType()).getWidth()); + builder.getSIntNTy(1), cast(mask.getType()).getWidth()); mlir::Value maskVec = builder.createBitcast(mask, maskTy); // If we have less than 8 elements, then the starting mask was an i8 and diff --git a/clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c b/clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c index 439c89e7953ab..3db2541506091 100644 --- a/clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c +++ b/clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c @@ -35,9 +35,9 @@ __mmask32 test_kshiftli_mask32(__mmask32 A) { // CIR-LABEL: test_kshiftli_mask32 - // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<32 x !cir.int> - // CIR: %{{.*}} = cir.vec.shuffle([[SHIFT]], [[VAL]] : !cir.vector<32 x !cir.int>) [#cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i, #cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i, #cir.int<8> : !s32i, #cir.int<9> : !s32i, #cir.int<10> : !s32i, #cir.int<11> : !s32i, #cir.int<12> : !s32i, #cir.int<13> : !s32i, #cir.int<14> : !s32i, #cir.int<15> : !s32i, #cir.int<16> : !s32i, #cir.int<17> : !s32i, #cir.int<18> : !s32i, #cir.int<19> : !s32i, #cir.int<20> : !s32i, #cir.int<21> : !s32i, #cir.int<22> : !s32i, #cir.int<23> : !s32i, #cir.int<24> : !s32i, #cir.int<25> : !s32i, #cir.int<26> : !s32i, #cir.int<27> : !s32i, #cir.int<28> : !s32i, #cir.int<29> : !s32i, #cir.int<30> : !s32i, #cir.int<31> : !s32i, #cir.int<32> : !s32i] : !cir.vector<32 x !cir.int> + // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<32 x !cir.int> + // CIR: %{{.*}} = cir.vec.shuffle([[SHIFT]], [[VAL]] : !cir.vector<32 x !cir.int>) [#cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i, #cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i, #cir.int<8> : !s32i, #cir.int<9> : !s32i, #cir.int<10> : !s32i, #cir.int<11> : !s32i, #cir.int<12> : !s32i, #cir.int<13> : !s32i, #cir.int<14> : !s32i, #cir.int<15> : !s32i, #cir.int<16> : !s32i, #cir.int<17> : !s32i, #cir.int<18> : !s32i, #cir.int<19> : !s32i, #cir.int<20> : !s32i, #cir.int<21> : !s32i, #cir.int<22> : !s32i, #cir.int<23> : !s32i, #cir.int<24> : !s32i, #cir.int<25> : !s32i, #cir.int<26> : !s32i, #cir.int<27> : !s32i, #cir.int<28> : !s32i, #cir.int<29> : !s32i, #cir.int<30> : !s32i, #cir.int<31> : !s32i, #cir.int<32> : !s32i] : !cir.vector<32 x !cir.int> // LLVM-LABEL: test_kshiftli_mask32 // LLVM: [[VAL:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -51,9 +51,9 @@ __mmask32 test_kshiftli_mask32(__mmask32 A) { __mmask32 test_kshiftri_mask32(__mmask32 A) { // CIR-LABEL: test_kshiftri_mask32 - // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<32 x !cir.int> - // CIR: %{{.*}} = cir.vec.shuffle([[VAL]], [[SHIFT]] : !cir.vector<32 x !cir.int>) [#cir.int<31> : !s32i, #cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i] : !cir.vector<32 x !cir.int> + // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<32 x !cir.int> + // CIR: %{{.*}} = cir.vec.shuffle([[VAL]], [[SHIFT]] : !cir.vector<32 x !cir.int>) [#cir.int<31> : !s32i, #cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i] : !cir.vector<32 x !cir.int> // LLVM-LABEL: test_kshiftri_mask32 // LLVM: [[VAL:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -67,9 +67,9 @@ __mmask32 test_kshiftri_mask32(__mmask32 A) { __mmask64 test_kshiftli_mask64(__mmask64 A) { // CIR-LABEL: test_kshiftli_mask64 - // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<64 x !cir.int> - // CIR: %{{.*}} = cir.vec.shuffle([[SHIFT]], [[VAL]] : !cir.vector<64 x !cir.int>) [#cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i, #cir.int<63> : !s32i, #cir.int<64> : !s32i, #cir.int<65> : !s32i, #cir.int<66> : !s32i, #cir.int<67> : !s32i, #cir.int<68> : !s32i, #cir.int<69> : !s32i, #cir.int<70> : !s32i, #cir.int<71> : !s32i, #cir.int<72> : !s32i, #cir.int<73> : !s32i, #cir.int<74> : !s32i, #cir.int<75> : !s32i, #cir.int<76> : !s32i, #cir.int<77> : !s32i, #cir.int<78> : !s32i, #cir.int<79> : !s32i, #cir.int<80> : !s32i, #cir.int<81> : !s32i, #cir.int<82> : !s32i, #cir.int<83> : !s32i, #cir.int<84> : !s32i, #cir.int<85> : !s32i, #cir.int<86> : !s32i, #cir.int<87> : !s32i, #cir.int<88> : !s32i, #cir.int<89> : !s32i, #cir.int<90> : !s32i, #cir.int<91> : !s32i, #cir.int<92> : !s32i, #cir.int<93> : !s32i, #cir.int<94> : !s32i, #cir.int<95> : !s32i] : !cir.vector<64 x !cir.int> + // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<64 x !cir.int> + // CIR: %{{.*}} = cir.vec.shuffle([[SHIFT]], [[VAL]] : !cir.vector<64 x !cir.int>) [#cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i, #cir.int<63> : !s32i, #cir.int<64> : !s32i, #cir.int<65> : !s32i, #cir.int<66> : !s32i, #cir.int<67> : !s32i, #cir.int<68> : !s32i, #cir.int<69> : !s32i, #cir.int<70> : !s32i, #cir.int<71> : !s32i, #cir.int<72> : !s32i, #cir.int<73> : !s32i, #cir.int<74> : !s32i, #cir.int<75> : !s32i, #cir.int<76> : !s32i, #cir.int<77> : !s32i, #cir.int<78> : !s32i, #cir.int<79> : !s32i, #cir.int<80> : !s32i, #cir.int<81> : !s32i, #cir.int<82> : !s32i, #cir.int<83> : !s32i, #cir.int<84> : !s32i, #cir.int<85> : !s32i, #cir.int<86> : !s32i, #cir.int<87> : !s32i, #cir.int<88> : !s32i, #cir.int<89> : !s32i, #cir.int<90> : !s32i, #cir.int<91> : !s32i, #cir.int<92> : !s32i, #cir.int<93> : !s32i, #cir.int<94> : !s32i, #cir.int<95> : !s32i] : !cir.vector<64 x !cir.int> // LLVM-LABEL: test_kshiftli_mask64 // LLVM: [[VAL:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -83,9 +83,9 @@ __mmask64 test_kshiftli_mask64(__mmask64 A) { __mmask64 test_kshiftri_mask64(__mmask64 A) { // CIR-LABEL: test_kshiftri_mask64 - // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<64 x !cir.int> - // CIR: %{{.*}} = cir.vec.shuffle([[VAL]], [[SHIFT]] : !cir.vector<64 x !cir.int>) [#cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i, #cir.int<63> : !s32i, #cir.int<64> : !s32i, #cir.int<65> : !s32i, #cir.int<66> : !s32i, #cir.int<67> : !s32i, #cir.int<68> : !s32i, #cir.int<69> : !s32i, #cir.int<70> : !s32i, #cir.int<71> : !s32i, #cir.int<72> : !s32i, #cir.int<73> : !s32i, #cir.int<74> : !s32i, #cir.int<75> : !s32i, #cir.int<76> : !s32i, #cir.int<77> : !s32i, #cir.int<78> : !s32i, #cir.int<79> : !s32i, #cir.int<80> : !s32i, #cir.int<81> : !s32i, #cir.int<82> : !s32i, #cir.int<83> : !s32i, #cir.int<84> : !s32i, #cir.int<85> : !s32i, #cir.int<86> : !s32i, #cir.int<87> : !s32i, #cir.int<88> : !s32i, #cir.int<89> : !s32i, #cir.int<90> : !s32i, #cir.int<91> : !s32i, #cir.int<92> : !s32i, #cir.int<93> : !s32i, #cir.int<94> : !s32i, #cir.int<95> : !s32i] : !cir.vector<64 x !cir.int> + // CIR: [[VAL:%.*]] = cir.cast bitcast %{{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: [[SHIFT:%.*]] = cir.const #cir.zero : !cir.vector<64 x !cir.int> + // CIR: %{{.*}} = cir.vec.shuffle([[VAL]], [[SHIFT]] : !cir.vector<64 x !cir.int>) [#cir.int<32> : !s32i, #cir.int<33> : !s32i, #cir.int<34> : !s32i, #cir.int<35> : !s32i, #cir.int<36> : !s32i, #cir.int<37> : !s32i, #cir.int<38> : !s32i, #cir.int<39> : !s32i, #cir.int<40> : !s32i, #cir.int<41> : !s32i, #cir.int<42> : !s32i, #cir.int<43> : !s32i, #cir.int<44> : !s32i, #cir.int<45> : !s32i, #cir.int<46> : !s32i, #cir.int<47> : !s32i, #cir.int<48> : !s32i, #cir.int<49> : !s32i, #cir.int<50> : !s32i, #cir.int<51> : !s32i, #cir.int<52> : !s32i, #cir.int<53> : !s32i, #cir.int<54> : !s32i, #cir.int<55> : !s32i, #cir.int<56> : !s32i, #cir.int<57> : !s32i, #cir.int<58> : !s32i, #cir.int<59> : !s32i, #cir.int<60> : !s32i, #cir.int<61> : !s32i, #cir.int<62> : !s32i, #cir.int<63> : !s32i, #cir.int<64> : !s32i, #cir.int<65> : !s32i, #cir.int<66> : !s32i, #cir.int<67> : !s32i, #cir.int<68> : !s32i, #cir.int<69> : !s32i, #cir.int<70> : !s32i, #cir.int<71> : !s32i, #cir.int<72> : !s32i, #cir.int<73> : !s32i, #cir.int<74> : !s32i, #cir.int<75> : !s32i, #cir.int<76> : !s32i, #cir.int<77> : !s32i, #cir.int<78> : !s32i, #cir.int<79> : !s32i, #cir.int<80> : !s32i, #cir.int<81> : !s32i, #cir.int<82> : !s32i, #cir.int<83> : !s32i, #cir.int<84> : !s32i, #cir.int<85> : !s32i, #cir.int<86> : !s32i, #cir.int<87> : !s32i, #cir.int<88> : !s32i, #cir.int<89> : !s32i, #cir.int<90> : !s32i, #cir.int<91> : !s32i, #cir.int<92> : !s32i, #cir.int<93> : !s32i, #cir.int<94> : !s32i, #cir.int<95> : !s32i] : !cir.vector<64 x !cir.int> // LLVM-LABEL: test_kshiftri_mask64 // LLVM: [[VAL:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -135,10 +135,10 @@ __mmask32 test_kshiftri_mask32_out_of_range(__mmask32 A) { __mmask32 test_kadd_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kadd_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> // CIR: cir.call_llvm_intrinsic "x86.avx512.kadd.d" - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kadd_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -156,10 +156,10 @@ __mmask32 test_kadd_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kadd_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kadd_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> // CIR: cir.call_llvm_intrinsic "x86.avx512.kadd.q" - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kadd_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -177,10 +177,10 @@ __mmask64 test_kadd_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_kand_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kand_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kand_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -198,10 +198,10 @@ __mmask32 test_kand_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kand_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kand_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kand_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -219,11 +219,11 @@ __mmask64 test_kand_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_kandn_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kandn_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kandn_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -243,11 +243,11 @@ __mmask32 test_kandn_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kandn_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kandn_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kandn_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -267,10 +267,10 @@ __mmask64 test_kandn_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_kor_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kor_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kor_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -288,10 +288,10 @@ __mmask32 test_kor_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kor_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kor_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kor_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -309,10 +309,10 @@ __mmask64 test_kor_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_kxor_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kxor_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kxor_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -330,10 +330,10 @@ __mmask32 test_kxor_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kxor_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kxor_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kxor_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -351,11 +351,11 @@ __mmask64 test_kxor_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_kxnor_mask32(__mmask32 A, __mmask32 B) { // CIR-LABEL: _kxnor_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _kxnor_mask32 // LLVM: [[L:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -376,11 +376,11 @@ __mmask32 test_kxnor_mask32(__mmask32 A, __mmask32 B) { __mmask64 test_kxnor_mask64(__mmask64 A, __mmask64 B) { // CIR-LABEL: _kxnor_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _kxnor_mask64 // LLVM: [[L:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -402,9 +402,9 @@ __mmask64 test_kxnor_mask64(__mmask64 A, __mmask64 B) { __mmask32 test_knot_mask32(__mmask32 A) { // CIR-LABEL: _knot_mask32 - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _knot_mask32 // LLVM: bitcast i32 %{{.*}} to <32 x i1> @@ -420,9 +420,9 @@ __mmask32 test_knot_mask32(__mmask32 A) { __mmask64 test_knot_mask64(__mmask64 A) { // CIR-LABEL: _knot_mask64 - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _knot_mask64 // LLVM: bitcast i64 %{{.*}} to <64 x i1> @@ -445,8 +445,8 @@ __mmask64 test_knot_mask64(__mmask64 A) { __mmask32 test_kmov_d(__mmask32 A) { // CIR-LABEL: test_kmov_d - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: test_kmov_d // LLVM: bitcast i32 %{{.*}} to <32 x i1> @@ -468,8 +468,8 @@ __mmask32 test_kmov_d(__mmask32 A) { __mmask64 test_kmov_q(__mmask64 A) { // CIR-LABEL: test_kmov_q - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: test_kmov_q // LLVM: bitcast i64 %{{.*}} to <64 x i1> @@ -484,12 +484,12 @@ __mmask64 test_kmov_q(__mmask64 A) { __mmask32 test_mm512_kunpackw(__mmask32 A, __mmask32 B) { // CIR-LABEL: _mm512_kunpackw - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle - // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<32 x !cir.int> -> !u32i // LLVM-LABEL: _mm512_kunpackw // LLVM: [[A_VEC:%.*]] = bitcast i32 %{{.*}} to <32 x i1> @@ -511,12 +511,12 @@ __mmask32 test_mm512_kunpackw(__mmask32 A, __mmask32 B) { __mmask64 test_mm512_kunpackd(__mmask64 A, __mmask64 B) { // CIR-LABEL: _mm512_kunpackd - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle - // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<64 x !cir.int> -> !u64i // LLVM-LABEL: _mm512_kunpackd // LLVM: [[A_VEC:%.*]] = bitcast i64 %{{.*}} to <64 x i1> @@ -563,10 +563,10 @@ __m512i test_mm512_shufflehi_epi16(__m512i __A) { unsigned char test_kortestc_mask32_u8(__mmask32 __A, __mmask32 __B) { // CIR-LABEL: _kortestc_mask32_u8 // CIR: %[[ALL_ONES:.*]] = cir.const #cir.int<4294967295> : !u32i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<32 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<32 x !cir.int> -> !u32i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<32 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<32 x !cir.int> -> !u32i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ALL_ONES]]) : !u32i, !cir.bool // CIR: %[[B2I:.*]] = cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i // CIR: cir.cast integral %[[B2I]] : !s32i -> !u8i @@ -594,10 +594,10 @@ unsigned char test_kortestc_mask32_u8(__mmask32 __A, __mmask32 __B) { unsigned char test_kortestc_mask64_u8(__mmask64 __A, __mmask64 __B) { // CIR-LABEL: _kortestc_mask64_u8 // CIR: %[[ALL_ONES:.*]] = cir.const #cir.int<18446744073709551615> : !u64i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<64 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<64 x !cir.int> -> !u64i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<64 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<64 x !cir.int> -> !u64i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ALL_ONES]]) : !u64i, !cir.bool // CIR: %[[B2I:.*]] = cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i // CIR: cir.cast integral %[[B2I]] : !s32i -> !u8i @@ -625,10 +625,10 @@ unsigned char test_kortestc_mask64_u8(__mmask64 __A, __mmask64 __B) { unsigned char test_kortestz_mask32_u8(__mmask32 __A, __mmask32 __B) { // CIR-LABEL: _kortestz_mask32_u8 // CIR: %[[ZERO:.*]] = cir.const #cir.int<0> : !u32i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<32 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<32 x !cir.int> -> !u32i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<32 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<32 x !cir.int> -> !u32i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ZERO]]) : !u32i, !cir.bool // CIR: %[[B2I:.*]] = cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i // CIR: cir.cast integral %[[B2I]] : !s32i -> !u8i @@ -656,10 +656,10 @@ unsigned char test_kortestz_mask32_u8(__mmask32 __A, __mmask32 __B) { unsigned char test_kortestz_mask64_u8(__mmask64 __A, __mmask64 __B) { // CIR-LABEL: _kortestz_mask64_u8 // CIR: %[[ZERO:.*]] = cir.const #cir.int<0> : !u64i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<64 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<64 x !cir.int> -> !u64i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<64 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<64 x !cir.int> -> !u64i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ZERO]]) : !u64i, !cir.bool // CIR: %[[B2I:.*]] = cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i // CIR: cir.cast integral %[[B2I]] : !s32i -> !u8i @@ -686,8 +686,8 @@ unsigned char test_kortestz_mask64_u8(__mmask64 __A, __mmask64 __B) { unsigned char test_ktestc_mask32_u8(__mmask32 A, __mmask32 B) { // CIR-LABEL: _ktestc_mask32_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestc.d" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -707,8 +707,8 @@ unsigned char test_ktestc_mask32_u8(__mmask32 A, __mmask32 B) { unsigned char test_ktestz_mask32_u8(__mmask32 A, __mmask32 B) { // CIR-LABEL: _ktestz_mask32_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u32i -> !cir.vector<32 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestz.d" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -728,8 +728,8 @@ unsigned char test_ktestz_mask32_u8(__mmask32 A, __mmask32 B) { unsigned char test_ktestc_mask64_u8(__mmask64 A, __mmask64 B) { // CIR-LABEL: _ktestc_mask64_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestc.q" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -749,8 +749,8 @@ unsigned char test_ktestc_mask64_u8(__mmask64 A, __mmask64 B) { unsigned char test_ktestz_mask64_u8(__mmask64 A, __mmask64 B) { // CIR-LABEL: _ktestz_mask64_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u64i -> !cir.vector<64 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestz.q" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i diff --git a/clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c b/clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c index 79156bed56fd0..0ba84053c15b1 100644 --- a/clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c +++ b/clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c @@ -15,10 +15,10 @@ __mmask8 test_kadd_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kadd_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> // CIR: cir.call_llvm_intrinsic "x86.avx512.kadd.b" - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kadd_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -36,10 +36,10 @@ __mmask8 test_kadd_mask8(__mmask8 A, __mmask8 B) { __mmask16 test_kadd_mask16(__mmask16 A, __mmask16 B) { // CIR-LABEL: _kadd_mask16 - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> // CIR: cir.call_llvm_intrinsic "x86.avx512.kadd.w" - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _kadd_mask16 // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -57,10 +57,10 @@ __mmask16 test_kadd_mask16(__mmask16 A, __mmask16 B) { __mmask8 test_kand_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kand_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kand_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -79,11 +79,11 @@ __mmask8 test_kand_mask8(__mmask8 A, __mmask8 B) { __mmask8 test_kandn_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kandn_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kandn_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -104,10 +104,10 @@ __mmask8 test_kandn_mask8(__mmask8 A, __mmask8 B) { __mmask8 test_kor_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kor_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kor_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -125,10 +125,10 @@ __mmask8 test_kor_mask8(__mmask8 A, __mmask8 B) { __mmask8 test_kxor_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kxor_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kxor_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -146,11 +146,11 @@ __mmask8 test_kxor_mask8(__mmask8 A, __mmask8 B) { __mmask8 test_kxnor_mask8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _kxnor_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _kxnor_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -171,9 +171,9 @@ __mmask8 test_kxnor_mask8(__mmask8 A, __mmask8 B) { __mmask8 test_knot_mask8(__mmask8 A) { // CIR-LABEL: _knot_mask8 - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: _knot_mask8 // LLVM: [[L:%.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -196,8 +196,8 @@ __mmask8 test_knot_mask8(__mmask8 A) { __mmask8 test_kmov_b(__mmask8 A) { // CIR-LABEL: test_kmov_b - // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i + // CIR: cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<8 x !cir.int> -> !u8i // LLVM-LABEL: test_kmov_b // LLVM: bitcast i8 %{{.*}} to <8 x i1> @@ -212,10 +212,10 @@ __mmask8 test_kmov_b(__mmask8 A) { unsigned char test_kortestc_mask8_u8(__mmask8 __A, __mmask8 __B) { // CIR-LABEL: _kortestc_mask8_u8 // CIR: %[[ALL_ONES:.*]] = cir.const #cir.int<255> : !u8i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<8 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<8 x !cir.int> -> !u8i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<8 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<8 x !cir.int> -> !u8i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ALL_ONES]]) : !u8i, !cir.bool // CIR: cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i // CIR: cir.cast integral {{.*}} : !s32i -> !u8i @@ -242,8 +242,8 @@ unsigned char test_kortestc_mask8_u8(__mmask8 __A, __mmask8 __B) { unsigned char test_ktestc_mask8_u8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _ktestc_mask8_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestc.b" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -263,8 +263,8 @@ unsigned char test_ktestc_mask8_u8(__mmask8 A, __mmask8 B) { unsigned char test_ktestz_mask8_u8(__mmask8 A, __mmask8 B) { // CIR-LABEL: _ktestz_mask8_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestz.b" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -284,8 +284,8 @@ unsigned char test_ktestz_mask8_u8(__mmask8 A, __mmask8 B) { unsigned char test_ktestc_mask16_u8(__mmask16 A, __mmask16 B) { // CIR-LABEL: _ktestc_mask16_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestc.w" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i @@ -305,8 +305,8 @@ unsigned char test_ktestc_mask16_u8(__mmask16 A, __mmask16 B) { unsigned char test_ktestz_mask16_u8(__mmask16 A, __mmask16 B) { // CIR-LABEL: _ktestz_mask16_u8 - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> // CIR: %[[RES:.*]] = cir.call_llvm_intrinsic "x86.avx512.ktestz.w" // CIR: cir.cast integral %[[RES]] : {{.*}} -> !u8i diff --git a/clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c b/clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c index d84ec3c25b2c2..9d5d5e67d6ad9 100644 --- a/clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c +++ b/clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c @@ -176,10 +176,10 @@ __m512i test_mm512_inserti32x4(__m512i __A, __m128i __B) { __mmask16 test_mm512_kand(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kand - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kand // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -197,11 +197,11 @@ __mmask16 test_mm512_kand(__mmask16 A, __mmask16 B) { __mmask16 test_mm512_kandn(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kandn - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.binop(and, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kandn // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -221,10 +221,10 @@ __mmask16 test_mm512_kandn(__mmask16 A, __mmask16 B) { __mmask16 test_mm512_kor(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kor - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.binop(or, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kor // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -242,11 +242,11 @@ __mmask16 test_mm512_kor(__mmask16 A, __mmask16 B) { __mmask16 test_mm512_kxnor(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kxnor - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kxnor // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -266,10 +266,10 @@ __mmask16 test_mm512_kxnor(__mmask16 A, __mmask16 B) { __mmask16 test_mm512_kxor(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kxor - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.binop(xor, {{.*}}, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kxor // LLVM: [[L:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -287,9 +287,9 @@ __mmask16 test_mm512_kxor(__mmask16 A, __mmask16 B) { __mmask16 test_mm512_knot(__mmask16 A) { // CIR-LABEL: _mm512_knot - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.unary(not, {{.*}}) : !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_knot // LLVM: bitcast i16 %{{.*}} to <16 x i1> @@ -312,8 +312,8 @@ __mmask16 test_mm512_knot(__mmask16 A) { __mmask16 test_kmov_w(__mmask16 A) { // CIR-LABEL: test_kmov_w - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: test_kmov_w // LLVM: bitcast i16 %{{.*}} to <16 x i1> @@ -327,12 +327,12 @@ __mmask16 test_kmov_w(__mmask16 A) { __mmask16 test_mm512_kunpackb(__mmask16 A, __mmask16 B) { // CIR-LABEL: _mm512_kunpackb - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle // CIR: cir.vec.shuffle - // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i + // CIR: cir.cast bitcast {{.*}} : !cir.vector<16 x !cir.int> -> !u16i // LLVM-LABEL: _mm512_kunpackb // LLVM: [[A_VEC:%.*]] = bitcast i16 %{{.*}} to <16 x i1> @@ -762,9 +762,9 @@ __m256d test_mm512_mask_extractf64x4_pd(__m256d __W,__mmask8 __U,__m512d __A){ // CIR-LABEL: test_mm512_mask_extractf64x4_pd // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<8 x !cir.double> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<8 x !cir.double>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !cir.double> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.double> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.double> // LLVM-LABEL: test_mm512_mask_extractf64x4_pd // LLVM: shufflevector <8 x double> %{{.*}}, <8 x double> poison, <4 x i32> @@ -780,9 +780,9 @@ __m256d test_mm512_maskz_extractf64x4_pd(__mmask8 __U,__m512d __A){ // CIR-LABEL: test_mm512_maskz_extractf64x4_pd // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<8 x !cir.double> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<8 x !cir.double>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !cir.double> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.double> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.double> // LLVM-LABEL: test_mm512_maskz_extractf64x4_pd // LLVM: shufflevector <8 x double> %{{.*}}, <8 x double> poison, <4 x i32> @@ -812,9 +812,9 @@ __m128 test_mm512_mask_extractf32x4_ps(__m128 __W, __mmask8 __U,__m512 __A){ // CIR-LABEL: test_mm512_mask_extractf32x4_ps // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<16 x !cir.float> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<16 x !cir.float>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !cir.float> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.float> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.float> // LLVM-LABEL: test_mm512_mask_extractf32x4_ps // LLVM: shufflevector <16 x float> %{{.*}}, <16 x float> poison, <4 x i32> @@ -830,9 +830,9 @@ __m128 test_mm512_maskz_extractf32x4_ps( __mmask8 __U,__m512 __A){ // CIR-LABEL: test_mm512_maskz_extractf32x4_ps // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<16 x !cir.float> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<16 x !cir.float>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !cir.float> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.float> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !cir.float> // LLVM-LABEL: test_mm512_maskz_extractf32x4_ps // LLVM: shufflevector <16 x float> %{{.*}}, <16 x float> poison, <4 x i32> @@ -848,9 +848,9 @@ __m128i test_mm512_extracti32x4_epi32(__m512i __A) { // CIR-LABEL: test_mm512_extracti32x4_epi32 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<16 x !s32i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<16 x !s32i>) [#cir.int<12> : !s32i, #cir.int<13> : !s32i, #cir.int<14> : !s32i, #cir.int<15> : !s32i] : !cir.vector<4 x !s32i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> // LLVM-LABEL: test_mm512_extracti32x4_epi32 // LLVM: shufflevector <16 x i32> %{{.*}}, <16 x i32> poison, <4 x i32> @@ -864,9 +864,9 @@ __m128i test_mm512_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m512i __ // CIR-LABEL: test_mm512_mask_extracti32x4_epi32 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<16 x !s32i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<16 x !s32i>) [#cir.int<12> : !s32i, #cir.int<13> : !s32i, #cir.int<14> : !s32i, #cir.int<15> : !s32i] : !cir.vector<4 x !s32i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> // LLVM-LABEL: test_mm512_mask_extracti32x4_epi32 // LLVM: shufflevector <16 x i32> %{{.*}}, <16 x i32> poison, <4 x i32> @@ -882,9 +882,9 @@ __m128i test_mm512_maskz_extracti32x4_epi32(__mmask8 __U, __m512i __A) { // CIR-LABEL: test_mm512_maskz_extracti32x4_epi32 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<16 x !s32i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<16 x !s32i>) [#cir.int<12> : !s32i, #cir.int<13> : !s32i, #cir.int<14> : !s32i, #cir.int<15> : !s32i] : !cir.vector<4 x !s32i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s32i> // LLVM-LABEL: test_mm512_maskz_extracti32x4_epi32 // LLVM: shufflevector <16 x i32> %{{.*}}, <16 x i32> poison, <4 x i32> @@ -900,9 +900,9 @@ __m256i test_mm512_extracti64x4_epi64(__m512i __A) { // CIR-LABEL: test_mm512_extracti64x4_epi64 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<8 x !s64i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<8 x !s64i>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !s64i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> // LLVM-LABEL: test_mm512_extracti64x4_epi64 // LLVM: shufflevector <8 x i64> %{{.*}}, <8 x i64> poison, <4 x i32> @@ -916,9 +916,9 @@ __m256i test_mm512_mask_extracti64x4_epi64(__m256i __W, __mmask8 __U, __m512i __ // CIR-LABEL: test_mm512_mask_extracti64x4_epi64 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<8 x !s64i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<8 x !s64i>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !s64i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> // LLVM-LABEL: test_mm512_mask_extracti64x4_epi64 // LLVM: shufflevector <8 x i64> %{{.*}}, <8 x i64> poison, <4 x i32> @@ -934,9 +934,9 @@ __m256i test_mm512_maskz_extracti64x4_epi64(__mmask8 __U, __m512i __A) { // CIR-LABEL: test_mm512_maskz_extracti64x4_epi64 // CIR: [[POISON:%.*]] = cir.const #cir.poison : !cir.vector<8 x !s64i> // CIR: [[FULL_VEC:%.*]] = cir.vec.shuffle(%{{.*}}, [[POISON]] : !cir.vector<8 x !s64i>) [#cir.int<4> : !s32i, #cir.int<5> : !s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i] : !cir.vector<4 x !s64i> - // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> - // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> + // CIR: [[MASK_VEC:%.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: [[FULL_MASK_VEC:%.*]] = cir.vec.shuffle([[MASK_VEC]], [[MASK_VEC]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i, #cir.int<3> : !s32i] : !cir.vector<4 x !cir.int> + // CIR: cir.vec.ternary([[FULL_MASK_VEC]], [[FULL_VEC]], {{.*}}) : !cir.vector<4 x !cir.int>, !cir.vector<4 x !s64i> // LLVM-LABEL: test_mm512_maskz_extracti64x4_epi64 // LLVM: shufflevector <8 x i64> %{{.*}}, <8 x i64> poison, <4 x i32> @@ -1003,10 +1003,10 @@ return _mm512_mul_epu32(__A, __B); int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) { // CIR-LABEL: _mm512_kortestc // CIR: %[[ALL_ONES:.*]] = cir.const #cir.int<65535> : !u16i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<16 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<16 x !cir.int> -> !u16i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<16 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<16 x !cir.int> -> !u16i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ALL_ONES]]) : !u16i, !cir.bool // CIR: cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i @@ -1032,10 +1032,10 @@ int test_mm512_kortestc(__mmask16 __A, __mmask16 __B) { int test_mm512_kortestz(__mmask16 __A, __mmask16 __B) { // CIR-LABEL: _mm512_kortestz // CIR: %[[ZERO:.*]] = cir.const #cir.int<0> : !u16i - // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> - // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<16 x !cir.int> - // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<16 x !cir.int> -> !u16i + // CIR: %[[LHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[RHS:.*]] = cir.cast bitcast {{.*}} : !u16i -> !cir.vector<16 x !cir.int> + // CIR: %[[OR:.*]] = cir.binop(or, %[[LHS]], %[[RHS]]) : !cir.vector<16 x !cir.int> + // CIR: %[[OR_INT:.*]] = cir.cast bitcast %[[OR]] : !cir.vector<16 x !cir.int> -> !u16i // CIR: %[[CMP:.*]] = cir.cmp(eq, %[[OR_INT]], %[[ZERO]]) : !u16i, !cir.bool // CIR: cir.cast bool_to_int %[[CMP]] : !cir.bool -> !s32i diff --git a/clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c b/clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c index 140dcd05d5a38..4ca07e2f099f1 100644 --- a/clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c +++ b/clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c @@ -225,8 +225,8 @@ __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) { __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) { // CIR-LABEL: _mm_mask_expand_pd - // CIR: %[[MASK:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[SHUF:.*]] = cir.vec.shuffle(%[[MASK]], %[[MASK]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i] : !cir.vector<2 x !cir.int> + // CIR: %[[MASK:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[SHUF:.*]] = cir.vec.shuffle(%[[MASK]], %[[MASK]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i] : !cir.vector<2 x !cir.int> // LLVM-LABEL: test_mm_mask_expand_pd // LLVM: %[[BC:.*]] = bitcast i8 %{{.*}} to <8 x i1> @@ -241,8 +241,8 @@ __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) { __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) { // CIR-LABEL: _mm_maskz_expand_pd - // CIR: %[[MASK:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> - // CIR: %[[SHUF:.*]] = cir.vec.shuffle(%[[MASK]], %[[MASK]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i] : !cir.vector<2 x !cir.int> + // CIR: %[[MASK:.*]] = cir.cast bitcast {{.*}} : !u8i -> !cir.vector<8 x !cir.int> + // CIR: %[[SHUF:.*]] = cir.vec.shuffle(%[[MASK]], %[[MASK]] : !cir.vector<8 x !cir.int>) [#cir.int<0> : !s32i, #cir.int<1> : !s32i] : !cir.vector<2 x !cir.int> // LLVM-LABEL: test_mm_maskz_expand_pd // LLVM: %[[BC:.*]] = bitcast i8 %{{.*}} to <8 x i1> diff --git a/clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c b/clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c index 964971d71eb6c..9e0cdaa9eea75 100644 --- a/clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c +++ b/clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c @@ -14,8 +14,8 @@ __m128i test_mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D) { // CIR-LABEL: test_mm_mask_compress_epi16 - // %[[MASK8:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK8]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> + // %[[MASK8:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK8]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<8 x !s16i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_mask_compress_epi16 @@ -33,8 +33,8 @@ __m128i test_mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D) { __m128i test_mm_maskz_compress_epi16(__mmask8 __U, __m128i __D) { // CIR-LABEL: test_mm_maskz_compress_epi16 - // %[[MASK8:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK8]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> + // %[[MASK8:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK8]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<8 x !s16i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_maskz_compress_epi16 @@ -52,8 +52,8 @@ __m128i test_mm_maskz_compress_epi16(__mmask8 __U, __m128i __D) { __m128i test_mm_mask_compress_epi8(__m128i __S, __mmask16 __U, __m128i __D) { // CIR-LABEL: test_mm_mask_compress_epi8 - // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK16]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> + // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %{{.+}}, %[[MASK16]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<16 x !s8i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_mask_compress_epi8 @@ -73,8 +73,8 @@ __m128i test_mm_maskz_compress_epi8(__mmask16 __U, __m128i __D) { // CIR-LABEL: test_mm_maskz_compress_epi8 // %[[ZERO:.+]] = cir.call @_mm_setzero_si128() : () -> !cir.vector<2 x !s64i> // %[[CAST1:.+]] = cir.cast bitcast %[[ZERO]] : !cir.vector<2 x !s64i> -> !cir.vector<16 x !s8i> - // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %[[CAST1]], %[[MASK16]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> + // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.compress" %{{.+}}, %[[CAST1]], %[[MASK16]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> // %[[CAST2:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<16 x !s8i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_maskz_compress_epi8 @@ -96,8 +96,8 @@ __m128i test_mm_maskz_compress_epi8(__mmask16 __U, __m128i __D) { __m128i test_mm_mask_expand_epi16(__m128i __S, __mmask8 __U, __m128i __D) { // CIR-LABEL: test_mm_mask_expand_epi16 - // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK16]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> + // %[[MASK16:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK16]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<8 x !s16i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_mask_expand_epi16 @@ -115,8 +115,8 @@ __m128i test_mm_mask_expand_epi16(__m128i __S, __mmask8 __U, __m128i __D) { __m128i test_mm_maskz_expand_epi16(__mmask8 __U, __m128i __D) { // CIR-LABEL: test_mm_maskz_expand_epi16 - // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> + // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u8i -> !cir.vector<8 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<8 x !s16i>, !cir.vector<8 x !s16i>, !cir.vector<8 x !cir.int>) -> !cir.vector<8 x !s16i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<8 x !s16i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_maskz_expand_epi16 @@ -134,8 +134,8 @@ __m128i test_mm_maskz_expand_epi16(__mmask8 __U, __m128i __D) { __m128i test_mm_mask_expand_epi8(__m128i __S, __mmask16 __U, __m128i __D) { // CIR-LABEL: test_mm_mask_expand_epi8 - // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> + // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<16 x !s8i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_mask_expand_epi8 @@ -153,8 +153,8 @@ __m128i test_mm_mask_expand_epi8(__m128i __S, __mmask16 __U, __m128i __D) { __m128i test_mm_maskz_expand_epi8(__mmask16 __U, __m128i __D) { // CIR-LABEL: test_mm_maskz_expand_epi8 - // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> - // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> + // %[[MASK:.+]] = cir.cast bitcast %{{.+}} : !u16i -> !cir.vector<16 x !cir.int> + // %[[RES:.+]] = cir.call_llvm_intrinsic "x86.avx512.mask.expand" %{{.+}}, %{{.+}}, %[[MASK]]: (!cir.vector<16 x !s8i>, !cir.vector<16 x !s8i>, !cir.vector<16 x !cir.int>) -> !cir.vector<16 x !s8i> // %[[CAST:.+]] = cir.cast bitcast %[[RES]] : !cir.vector<16 x !s8i> -> !cir.vector<2 x !s64i> // LLVM-LABEL: test_mm_maskz_expand_epi8