[Clang][CodeGen] Use poison instead of undef for extra argument in __builtin_amdgcn_m...
authorManuel Brito <manuel.brito@tecnico.ulisboa.pt>
Tue, 6 Dec 2022 12:39:38 +0000 (12:39 +0000)
committerNuno Lopes <nuno.lopes@tecnico.ulisboa.pt>
Tue, 6 Dec 2022 12:40:33 +0000 (12:40 +0000)
Differential Revision: https://reviews.llvm.org/D138755

clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl

index 0138111..d40910b 100644 (file)
@@ -16905,7 +16905,7 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
       Args.push_back(EmitScalarExpr(E->getArg(I)));
     assert(Args.size() == 5 || Args.size() == 6);
     if (Args.size() == 5)
-      Args.insert(Args.begin(), llvm::UndefValue::get(Args[0]->getType()));
+      Args.insert(Args.begin(), llvm::PoisonValue::get(Args[0]->getType()));
     Function *F =
         CGM.getIntrinsic(Intrinsic::amdgcn_update_dpp, Args[0]->getType());
     return Builder.CreateCall(F, Args);
index daba1b9..c7437d7 100644 (file)
@@ -101,7 +101,7 @@ void test_s_dcache_wb()
 }
 
 // CHECK-LABEL: @test_mov_dpp
-// CHECK: call i32 @llvm.amdgcn.update.dpp.i32(i32 undef, i32 %src, i32 0, i32 0, i32 0, i1 false)
+// CHECK: call i32 @llvm.amdgcn.update.dpp.i32(i32 poison, i32 %src, i32 0, i32 0, i32 0, i1 false)
 void test_mov_dpp(global int* out, int src)
 {
   *out = __builtin_amdgcn_mov_dpp(src, 0, 0, 0, false);