<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in X86InstructionSelector.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>655ba9c8 - Reland &quot;Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#655ba9c8</link>
        <description>Reland &quot;Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;&quot;This resolves problems reported in commit 1a20252978c76cf2518aa45b175a9e5d6d36c4f0.1. Promote to float lowering for nodes XINT_TO_FP2. Bail out f16 from shuffle combine due to vector type is not legal in the version

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 17 Jun 2022 13:09:19 +0000</pubDate>
        <dc:creator>Phoebe Wang &lt;phoebe.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>1a202529 - Revert &quot;Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#1a202529</link>
        <description>Revert &quot;Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;&quot;This reverts commit 04a3d5f3a1193fb87576425a385aa0a6115b1e7c.I see two more issues:- uitofp/sitofp from i32/i64 to half now generates  __floatsihf/__floatdihf, which exists in neither compiler-rt nor  libgcc- This crashes when legalizing the bitcast:```; RUN: llc &lt; %s -mcpu=skxdefine void @main.45(ptr nocapture readnone %retval, ptr noalias nocapture readnone %run_options, ptr noalias nocapture readnone %params, ptr noalias nocapture readonly %buffer_table, ptr noalias nocapture readnone %status, ptr noalias nocapture readnone %prof_counters) local_unnamed_addr {entry:  %fusion = load ptr, ptr %buffer_table, align 8  %0 = getelementptr inbounds ptr, ptr %buffer_table, i64 1  %Arg_1.2 = load ptr, ptr %0, align 8  %1 = getelementptr inbounds ptr, ptr %buffer_table, i64 2  %Arg_0.1 = load ptr, ptr %1, align 8  %2 = load half, ptr %Arg_0.1, align 8  %3 = bitcast half %2 to i16  %4 = and i16 %3, 32767  %5 = icmp eq i16 %4, 0  %6 = and i16 %3, -32768  %broadcast.splatinsert = insertelement &lt;4 x half&gt; poison, half %2, i64 0  %broadcast.splat = shufflevector &lt;4 x half&gt; %broadcast.splatinsert, &lt;4 x half&gt; poison, &lt;4 x i32&gt; zeroinitializer  %broadcast.splatinsert9 = insertelement &lt;4 x i16&gt; poison, i16 %4, i64 0  %broadcast.splat10 = shufflevector &lt;4 x i16&gt; %broadcast.splatinsert9, &lt;4 x i16&gt; poison, &lt;4 x i32&gt; zeroinitializer  %broadcast.splatinsert11 = insertelement &lt;4 x i16&gt; poison, i16 %6, i64 0  %broadcast.splat12 = shufflevector &lt;4 x i16&gt; %broadcast.splatinsert11, &lt;4 x i16&gt; poison, &lt;4 x i32&gt; zeroinitializer  %broadcast.splatinsert13 = insertelement &lt;4 x i16&gt; poison, i16 %3, i64 0  %broadcast.splat14 = shufflevector &lt;4 x i16&gt; %broadcast.splatinsert13, &lt;4 x i16&gt; poison, &lt;4 x i32&gt; zeroinitializer  %wide.load = load &lt;4 x half&gt;, ptr %Arg_1.2, align 8  %7 = fcmp uno &lt;4 x half&gt; %broadcast.splat, %wide.load  %8 = fcmp oeq &lt;4 x half&gt; %broadcast.splat, %wide.load  %9 = bitcast &lt;4 x half&gt; %wide.load to &lt;4 x i16&gt;  %10 = and &lt;4 x i16&gt; %9, &lt;i16 32767, i16 32767, i16 32767, i16 32767&gt;  %11 = icmp eq &lt;4 x i16&gt; %10, zeroinitializer  %12 = and &lt;4 x i16&gt; %9, &lt;i16 -32768, i16 -32768, i16 -32768, i16 -32768&gt;  %13 = or &lt;4 x i16&gt; %12, &lt;i16 1, i16 1, i16 1, i16 1&gt;  %14 = select &lt;4 x i1&gt; %11, &lt;4 x i16&gt; %9, &lt;4 x i16&gt; %13  %15 = icmp ugt &lt;4 x i16&gt; %broadcast.splat10, %10  %16 = icmp ne &lt;4 x i16&gt; %broadcast.splat12, %12  %17 = or &lt;4 x i1&gt; %15, %16  %18 = select &lt;4 x i1&gt; %17, &lt;4 x i16&gt; &lt;i16 -1, i16 -1, i16 -1, i16 -1&gt;, &lt;4 x i16&gt; &lt;i16 1, i16 1, i16 1, i16 1&gt;  %19 = add &lt;4 x i16&gt; %18, %broadcast.splat14  %20 = select i1 %5, &lt;4 x i16&gt; %14, &lt;4 x i16&gt; %19  %21 = select &lt;4 x i1&gt; %8, &lt;4 x i16&gt; %9, &lt;4 x i16&gt; %20  %22 = bitcast &lt;4 x i16&gt; %21 to &lt;4 x half&gt;  %23 = select &lt;4 x i1&gt; %7, &lt;4 x half&gt; &lt;half 0xH7E00, half 0xH7E00, half 0xH7E00, half 0xH7E00&gt;, &lt;4 x half&gt; %22  store &lt;4 x half&gt; %23, ptr %fusion, align 16  ret void}```llc: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:977: void (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode *): Assertion `(TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) &amp;&amp; &quot;Unexpected illegal type!&quot;&apos; failed.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 17 Jun 2022 07:40:50 +0000</pubDate>
        <dc:creator>Benjamin Kramer &lt;benny.kra@googlemail.com&gt;</dc:creator>
    </item>
<item>
        <title>04a3d5f3 - Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#04a3d5f3</link>
        <description>Reland &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;Fix the crash on lowering X86ISD::FCMP.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 17 Jun 2022 03:25:22 +0000</pubDate>
        <dc:creator>Phoebe Wang &lt;phoebe.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>3cd5696a - Revert &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#3cd5696a</link>
        <description>Revert &quot;Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;&quot;This reverts commit e1c5afa47d37012499467b5061fc42e50884d129.This introduces crashes in the JAX backend on CPU. A reproducer in LLVM isbelow. Let me know if you have trouble reproducing this.; ModuleID = &apos;__compute_module&apos;source_filename = &quot;__compute_module&quot;target datalayout = &quot;e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128&quot;target triple = &quot;x86_64-grtev4-linux-gnu&quot;@0 = private unnamed_addr constant [4 x i8] c&quot;\00\00\00?&quot;@1 = private unnamed_addr constant [4 x i8] c&quot;\1C}\908&quot;@2 = private unnamed_addr constant [4 x i8] c&quot;?\00\\4&quot;@3 = private unnamed_addr constant [4 x i8] c&quot;%ci1&quot;@4 = private unnamed_addr constant [4 x i8] zeroinitializer@5 = private unnamed_addr constant [4 x i8] c&quot;\00\00\00\C0&quot;@6 = private unnamed_addr constant [4 x i8] c&quot;\00\00\00B&quot;@7 = private unnamed_addr constant [4 x i8] c&quot;\94\B4\C22&quot;@8 = private unnamed_addr constant [4 x i8] c&quot;^\09B6&quot;@9 = private unnamed_addr constant [4 x i8] c&quot;\15\F3M?&quot;@10 = private unnamed_addr constant [4 x i8] c&quot;e\CC\\;&quot;@11 = private unnamed_addr constant [4 x i8] c&quot;d\BD/&gt;&quot;@12 = private unnamed_addr constant [4 x i8] c&quot;V\F4I=&quot;@13 = private unnamed_addr constant [4 x i8] c&quot;\10\CB,&lt;&quot;@14 = private unnamed_addr constant [4 x i8] c&quot;\AC\E3\D6:&quot;@15 = private unnamed_addr constant [4 x i8] c&quot;\DC\A8E9&quot;@16 = private unnamed_addr constant [4 x i8] c&quot;\C6\FA\897&quot;@17 = private unnamed_addr constant [4 x i8] c&quot;%\F9\955&quot;@18 = private unnamed_addr constant [4 x i8] c&quot;\B5\DB\813&quot;@19 = private unnamed_addr constant [4 x i8] c&quot;\B4W_\B2&quot;@20 = private unnamed_addr constant [4 x i8] c&quot;\1Cc\8F\B4&quot;@21 = private unnamed_addr constant [4 x i8] c&quot;~3\94\B6&quot;@22 = private unnamed_addr constant [4 x i8] c&quot;3Yq\B8&quot;@23 = private unnamed_addr constant [4 x i8] c&quot;\E9\17\17\BA&quot;@24 = private unnamed_addr constant [4 x i8] c&quot;\F1\B2\8D\BB&quot;@25 = private unnamed_addr constant [4 x i8] c&quot;\F8t\C2\BC&quot;@26 = private unnamed_addr constant [4 x i8] c&quot;\82[\C2\BD&quot;@27 = private unnamed_addr constant [4 x i8] c&quot;uB-?&quot;@28 = private unnamed_addr constant [4 x i8] c&quot;^\FF\9B\BE&quot;@29 = private unnamed_addr constant [4 x i8] c&quot;\00\00\00A&quot;; Function Attrs: uwtabledefine void @main.158(ptr %retval, ptr noalias %run_options, ptr noalias %params, ptr noalias %buffer_table, ptr noalias %status, ptr noalias %prof_counters) #0 {entry:  %fusion.invar_address.dim.1 = alloca i64, align 8  %fusion.invar_address.dim.0 = alloca i64, align 8  %0 = getelementptr inbounds ptr, ptr %buffer_table, i64 1  %Arg_0.1 = load ptr, ptr %0, align 8, !invariant.load !0, !dereferenceable !1, !align !2  %1 = getelementptr inbounds ptr, ptr %buffer_table, i64 0  %fusion = load ptr, ptr %1, align 8, !invariant.load !0, !dereferenceable !1, !align !2  store i64 0, ptr %fusion.invar_address.dim.0, align 8  br label %fusion.loop_header.dim.0return:                                           ; preds = %fusion.loop_exit.dim.0  ret voidfusion.loop_header.dim.0:                         ; preds = %fusion.loop_exit.dim.1, %entry  %fusion.indvar.dim.0 = load i64, ptr %fusion.invar_address.dim.0, align 8  %2 = icmp uge i64 %fusion.indvar.dim.0, 3  br i1 %2, label %fusion.loop_exit.dim.0, label %fusion.loop_body.dim.0fusion.loop_body.dim.0:                           ; preds = %fusion.loop_header.dim.0  store i64 0, ptr %fusion.invar_address.dim.1, align 8  br label %fusion.loop_header.dim.1fusion.loop_header.dim.1:                         ; preds = %fusion.loop_body.dim.1, %fusion.loop_body.dim.0  %fusion.indvar.dim.1 = load i64, ptr %fusion.invar_address.dim.1, align 8  %3 = icmp uge i64 %fusion.indvar.dim.1, 1  br i1 %3, label %fusion.loop_exit.dim.1, label %fusion.loop_body.dim.1fusion.loop_body.dim.1:                           ; preds = %fusion.loop_header.dim.1  %4 = getelementptr inbounds [3 x [1 x half]], ptr %Arg_0.1, i64 0, i64 %fusion.indvar.dim.0, i64 0  %5 = load half, ptr %4, align 2, !invariant.load !0, !noalias !3  %6 = fpext half %5 to float  %7 = call float @llvm.fabs.f32(float %6)  %constant.121 = load float, ptr @29, align 4  %compare.2 = fcmp ole float %7, %constant.121  %8 = zext i1 %compare.2 to i8  %constant.120 = load float, ptr @0, align 4  %multiply.95 = fmul float %7, %constant.120  %constant.119 = load float, ptr @5, align 4  %add.82 = fadd float %multiply.95, %constant.119  %constant.118 = load float, ptr @4, align 4  %multiply.94 = fmul float %add.82, %constant.118  %constant.117 = load float, ptr @19, align 4  %add.81 = fadd float %multiply.94, %constant.117  %multiply.92 = fmul float %add.82, %add.81  %constant.116 = load float, ptr @18, align 4  %add.79 = fadd float %multiply.92, %constant.116  %multiply.91 = fmul float %add.82, %add.79  %subtract.87 = fsub float %multiply.91, %add.81  %constant.115 = load float, ptr @20, align 4  %add.78 = fadd float %subtract.87, %constant.115  %multiply.89 = fmul float %add.82, %add.78  %subtract.86 = fsub float %multiply.89, %add.79  %constant.114 = load float, ptr @17, align 4  %add.76 = fadd float %subtract.86, %constant.114  %multiply.88 = fmul float %add.82, %add.76  %subtract.84 = fsub float %multiply.88, %add.78  %constant.113 = load float, ptr @21, align 4  %add.75 = fadd float %subtract.84, %constant.113  %multiply.86 = fmul float %add.82, %add.75  %subtract.83 = fsub float %multiply.86, %add.76  %constant.112 = load float, ptr @16, align 4  %add.73 = fadd float %subtract.83, %constant.112  %multiply.85 = fmul float %add.82, %add.73  %subtract.81 = fsub float %multiply.85, %add.75  %constant.111 = load float, ptr @22, align 4  %add.72 = fadd float %subtract.81, %constant.111  %multiply.83 = fmul float %add.82, %add.72  %subtract.80 = fsub float %multiply.83, %add.73  %constant.110 = load float, ptr @15, align 4  %add.70 = fadd float %subtract.80, %constant.110  %multiply.82 = fmul float %add.82, %add.70  %subtract.78 = fsub float %multiply.82, %add.72  %constant.109 = load float, ptr @23, align 4  %add.69 = fadd float %subtract.78, %constant.109  %multiply.80 = fmul float %add.82, %add.69  %subtract.77 = fsub float %multiply.80, %add.70  %constant.108 = load float, ptr @14, align 4  %add.68 = fadd float %subtract.77, %constant.108  %multiply.79 = fmul float %add.82, %add.68  %subtract.75 = fsub float %multiply.79, %add.69  %constant.107 = load float, ptr @24, align 4  %add.67 = fadd float %subtract.75, %constant.107  %multiply.77 = fmul float %add.82, %add.67  %subtract.74 = fsub float %multiply.77, %add.68  %constant.106 = load float, ptr @13, align 4  %add.66 = fadd float %subtract.74, %constant.106  %multiply.76 = fmul float %add.82, %add.66  %subtract.72 = fsub float %multiply.76, %add.67  %constant.105 = load float, ptr @25, align 4  %add.65 = fadd float %subtract.72, %constant.105  %multiply.74 = fmul float %add.82, %add.65  %subtract.71 = fsub float %multiply.74, %add.66  %constant.104 = load float, ptr @12, align 4  %add.64 = fadd float %subtract.71, %constant.104  %multiply.73 = fmul float %add.82, %add.64  %subtract.69 = fsub float %multiply.73, %add.65  %constant.103 = load float, ptr @26, align 4  %add.63 = fadd float %subtract.69, %constant.103  %multiply.71 = fmul float %add.82, %add.63  %subtract.67 = fsub float %multiply.71, %add.64  %constant.102 = load float, ptr @11, align 4  %add.62 = fadd float %subtract.67, %constant.102  %multiply.70 = fmul float %add.82, %add.62  %subtract.66 = fsub float %multiply.70, %add.63  %constant.101 = load float, ptr @28, align 4  %add.61 = fadd float %subtract.66, %constant.101  %multiply.68 = fmul float %add.82, %add.61  %subtract.65 = fsub float %multiply.68, %add.62  %constant.100 = load float, ptr @27, align 4  %add.60 = fadd float %subtract.65, %constant.100  %subtract.64 = fsub float %add.60, %add.62  %multiply.66 = fmul float %subtract.64, %constant.120  %constant.99 = load float, ptr @6, align 4  %divide.4 = fdiv float %constant.99, %7  %add.59 = fadd float %divide.4, %constant.119  %multiply.65 = fmul float %add.59, %constant.118  %constant.98 = load float, ptr @3, align 4  %add.58 = fadd float %multiply.65, %constant.98  %multiply.64 = fmul float %add.59, %add.58  %constant.97 = load float, ptr @7, align 4  %add.57 = fadd float %multiply.64, %constant.97  %multiply.63 = fmul float %add.59, %add.57  %subtract.63 = fsub float %multiply.63, %add.58  %constant.96 = load float, ptr @2, align 4  %add.56 = fadd float %subtract.63, %constant.96  %multiply.62 = fmul float %add.59, %add.56  %subtract.62 = fsub float %multiply.62, %add.57  %constant.95 = load float, ptr @8, align 4  %add.55 = fadd float %subtract.62, %constant.95  %multiply.61 = fmul float %add.59, %add.55  %subtract.61 = fsub float %multiply.61, %add.56  %constant.94 = load float, ptr @1, align 4  %add.54 = fadd float %subtract.61, %constant.94  %multiply.60 = fmul float %add.59, %add.54  %subtract.60 = fsub float %multiply.60, %add.55  %constant.93 = load float, ptr @10, align 4  %add.53 = fadd float %subtract.60, %constant.93  %multiply.59 = fmul float %add.59, %add.53  %subtract.59 = fsub float %multiply.59, %add.54  %constant.92 = load float, ptr @9, align 4  %add.52 = fadd float %subtract.59, %constant.92  %subtract.58 = fsub float %add.52, %add.54  %multiply.58 = fmul float %subtract.58, %constant.120  %9 = call float @llvm.sqrt.f32(float %7)  %10 = fdiv float 1.000000e+00, %9  %multiply.57 = fmul float %multiply.58, %10  %11 = trunc i8 %8 to i1  %12 = select i1 %11, float %multiply.66, float %multiply.57  %13 = fptrunc float %12 to half  %14 = getelementptr inbounds [3 x [1 x half]], ptr %fusion, i64 0, i64 %fusion.indvar.dim.0, i64 0  store half %13, ptr %14, align 2, !alias.scope !3  %invar.inc1 = add nuw nsw i64 %fusion.indvar.dim.1, 1  store i64 %invar.inc1, ptr %fusion.invar_address.dim.1, align 8  br label %fusion.loop_header.dim.1fusion.loop_exit.dim.1:                           ; preds = %fusion.loop_header.dim.1  %invar.inc = add nuw nsw i64 %fusion.indvar.dim.0, 1  store i64 %invar.inc, ptr %fusion.invar_address.dim.0, align 8  br label %fusion.loop_header.dim.0fusion.loop_exit.dim.0:                           ; preds = %fusion.loop_header.dim.0  br label %return}; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturndeclare float @llvm.fabs.f32(float %0) #1; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturndeclare float @llvm.sqrt.f32(float %0) #1attributes #0 = { uwtable &quot;denormal-fp-math&quot;=&quot;preserve-sign&quot; &quot;no-frame-pointer-elim&quot;=&quot;false&quot; }attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn }!0 = !{}!1 = !{i64 6}!2 = !{i64 8}!3 = !{!4}!4 = !{!&quot;buffer: {index:0, offset:0, size:6}&quot;, !5}!5 = !{!&quot;XLA global AA domain&quot;}

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 15 Jun 2022 22:04:42 +0000</pubDate>
        <dc:creator>Frederik Gossen &lt;frgossen@google.com&gt;</dc:creator>
    </item>
<item>
        <title>e1c5afa4 - Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#e1c5afa4</link>
        <description>Reland &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;Fixed the missing SQRT promotion. Adding several missing operations too.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 15 Jun 2022 14:22:32 +0000</pubDate>
        <dc:creator>Phoebe Wang &lt;phoebe.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>37455b1f - Revert &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#37455b1f</link>
        <description>Revert &quot;Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;&quot;This reverts commit 6e02e27536b9de25a651cfc9c2966ce471169355.This introduces a crash in the backend. Reproducer in MLIR&apos;s LLVMdialect follows. Let me know if you have trouble reproducing this.module {  llvm.func @malloc(i64) -&gt; !llvm.ptr&lt;i8&gt;  llvm.func @_mlir_ciface_tf_report_error(!llvm.ptr&lt;i8&gt;, i32, !llvm.ptr&lt;i8&gt;)  llvm.mlir.global internal constant @error_message_2208944672953921889(&quot;failed to allocate memory at loc(\22-\22:3:8)\00&quot;)  llvm.func @_mlir_ciface_tf_alloc(!llvm.ptr&lt;i8&gt;, i64, i64, i32, i32, !llvm.ptr&lt;i32&gt;) -&gt; !llvm.ptr&lt;i8&gt;  llvm.func @Rsqrt_CPU_DT_HALF_DT_HALF(%arg0: !llvm.ptr&lt;i8&gt;, %arg1: i64, %arg2: !llvm.ptr&lt;i8&gt;) -&gt; !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt; attributes {llvm.emit_c_interface, tf_entry} {    %0 = llvm.mlir.constant(8 : i32) : i32    %1 = llvm.mlir.constant(8 : index) : i64    %2 = llvm.mlir.constant(2 : index) : i64    %3 = llvm.mlir.constant(dense&lt;0.000000e+00&gt; : vector&lt;4xf16&gt;) : vector&lt;4xf16&gt;    %4 = llvm.mlir.constant(dense&lt;[0, 1, 2, 3]&gt; : vector&lt;4xi32&gt;) : vector&lt;4xi32&gt;    %5 = llvm.mlir.constant(dense&lt;1.000000e+00&gt; : vector&lt;4xf16&gt;) : vector&lt;4xf16&gt;    %6 = llvm.mlir.constant(false) : i1    %7 = llvm.mlir.constant(1 : i32) : i32    %8 = llvm.mlir.constant(0 : i32) : i32    %9 = llvm.mlir.constant(4 : index) : i64    %10 = llvm.mlir.constant(0 : index) : i64    %11 = llvm.mlir.constant(1 : index) : i64    %12 = llvm.mlir.constant(-1 : index) : i64    %13 = llvm.mlir.null : !llvm.ptr&lt;f16&gt;    %14 = llvm.getelementptr %13[%9] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %15 = llvm.ptrtoint %14 : !llvm.ptr&lt;f16&gt; to i64    %16 = llvm.alloca %15 x f16 {alignment = 32 : i64} : (i64) -&gt; !llvm.ptr&lt;f16&gt;    %17 = llvm.alloca %15 x f16 {alignment = 32 : i64} : (i64) -&gt; !llvm.ptr&lt;f16&gt;    %18 = llvm.mlir.null : !llvm.ptr&lt;i64&gt;    %19 = llvm.getelementptr %18[%arg1] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %20 = llvm.ptrtoint %19 : !llvm.ptr&lt;i64&gt; to i64    %21 = llvm.alloca %20 x i64 : (i64) -&gt; !llvm.ptr&lt;i64&gt;    llvm.br ^bb1(%10 : i64)  ^bb1(%22: i64):  // 2 preds: ^bb0, ^bb2    %23 = llvm.icmp &quot;slt&quot; %22, %arg1 : i64    llvm.cond_br %23, ^bb2, ^bb3  ^bb2:  // pred: ^bb1    %24 = llvm.bitcast %arg2 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64)&gt;&gt;    %25 = llvm.getelementptr %24[%10, 2] : (!llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64)&gt;&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %26 = llvm.add %22, %11  : i64    %27 = llvm.getelementptr %25[%26] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %28 = llvm.load %27 : !llvm.ptr&lt;i64&gt;    %29 = llvm.getelementptr %21[%22] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    llvm.store %28, %29 : !llvm.ptr&lt;i64&gt;    llvm.br ^bb1(%26 : i64)  ^bb3:  // pred: ^bb1    llvm.br ^bb4(%10, %11 : i64, i64)  ^bb4(%30: i64, %31: i64):  // 2 preds: ^bb3, ^bb5    %32 = llvm.icmp &quot;slt&quot; %30, %arg1 : i64    llvm.cond_br %32, ^bb5, ^bb6  ^bb5:  // pred: ^bb4    %33 = llvm.bitcast %arg2 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64)&gt;&gt;    %34 = llvm.getelementptr %33[%10, 2] : (!llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64)&gt;&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %35 = llvm.add %30, %11  : i64    %36 = llvm.getelementptr %34[%35] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %37 = llvm.load %36 : !llvm.ptr&lt;i64&gt;    %38 = llvm.mul %37, %31  : i64    llvm.br ^bb4(%35, %38 : i64, i64)  ^bb6:  // pred: ^bb4    %39 = llvm.bitcast %arg2 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %40 = llvm.getelementptr %39[%11] : (!llvm.ptr&lt;ptr&lt;f16&gt;&gt;, i64) -&gt; !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %41 = llvm.load %40 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %42 = llvm.getelementptr %13[%11] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %43 = llvm.ptrtoint %42 : !llvm.ptr&lt;f16&gt; to i64    %44 = llvm.alloca %7 x i32 : (i32) -&gt; !llvm.ptr&lt;i32&gt;    llvm.store %8, %44 : !llvm.ptr&lt;i32&gt;    %45 = llvm.call @_mlir_ciface_tf_alloc(%arg0, %31, %43, %8, %7, %44) : (!llvm.ptr&lt;i8&gt;, i64, i64, i32, i32, !llvm.ptr&lt;i32&gt;) -&gt; !llvm.ptr&lt;i8&gt;    %46 = llvm.bitcast %45 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;f16&gt;    %47 = llvm.icmp &quot;eq&quot; %31, %10 : i64    %48 = llvm.or %6, %47  : i1    %49 = llvm.mlir.null : !llvm.ptr&lt;i8&gt;    %50 = llvm.icmp &quot;ne&quot; %45, %49 : !llvm.ptr&lt;i8&gt;    %51 = llvm.or %50, %48  : i1    llvm.cond_br %51, ^bb7, ^bb13  ^bb7:  // pred: ^bb6    %52 = llvm.urem %31, %9  : i64    %53 = llvm.sub %31, %52  : i64    llvm.br ^bb8(%10 : i64)  ^bb8(%54: i64):  // 2 preds: ^bb7, ^bb9    %55 = llvm.icmp &quot;slt&quot; %54, %53 : i64    llvm.cond_br %55, ^bb9, ^bb10  ^bb9:  // pred: ^bb8    %56 = llvm.mul %54, %11  : i64    %57 = llvm.add %56, %10  : i64    %58 = llvm.add %57, %10  : i64    %59 = llvm.getelementptr %41[%58] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %60 = llvm.bitcast %59 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %61 = llvm.load %60 {alignment = 2 : i64} : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %62 = &quot;llvm.intr.sqrt&quot;(%61) : (vector&lt;4xf16&gt;) -&gt; vector&lt;4xf16&gt;    %63 = llvm.fdiv %5, %62  : vector&lt;4xf16&gt;    %64 = llvm.getelementptr %46[%58] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %65 = llvm.bitcast %64 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    llvm.store %63, %65 {alignment = 2 : i64} : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %66 = llvm.add %54, %9  : i64    llvm.br ^bb8(%66 : i64)  ^bb10:  // pred: ^bb8    %67 = llvm.icmp &quot;ult&quot; %53, %31 : i64    llvm.cond_br %67, ^bb11, ^bb12  ^bb11:  // pred: ^bb10    %68 = llvm.mul %53, %12  : i64    %69 = llvm.add %31, %68  : i64    %70 = llvm.mul %53, %11  : i64    %71 = llvm.add %70, %10  : i64    %72 = llvm.trunc %69 : i64 to i32    %73 = llvm.mlir.undef : vector&lt;4xi32&gt;    %74 = llvm.insertelement %72, %73[%8 : i32] : vector&lt;4xi32&gt;    %75 = llvm.shufflevector %74, %73 [0 : i32, 0 : i32, 0 : i32, 0 : i32] : vector&lt;4xi32&gt;, vector&lt;4xi32&gt;    %76 = llvm.icmp &quot;slt&quot; %4, %75 : vector&lt;4xi32&gt;    %77 = llvm.add %71, %10  : i64    %78 = llvm.getelementptr %41[%77] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %79 = llvm.bitcast %78 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %80 = llvm.intr.masked.load %79, %76, %3 {alignment = 2 : i32} : (!llvm.ptr&lt;vector&lt;4xf16&gt;&gt;, vector&lt;4xi1&gt;, vector&lt;4xf16&gt;) -&gt; vector&lt;4xf16&gt;    %81 = llvm.bitcast %16 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    llvm.store %80, %81 : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %82 = llvm.load %81 {alignment = 2 : i64} : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %83 = &quot;llvm.intr.sqrt&quot;(%82) : (vector&lt;4xf16&gt;) -&gt; vector&lt;4xf16&gt;    %84 = llvm.fdiv %5, %83  : vector&lt;4xf16&gt;    %85 = llvm.bitcast %17 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    llvm.store %84, %85 {alignment = 2 : i64} : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %86 = llvm.load %85 : !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    %87 = llvm.getelementptr %46[%77] : (!llvm.ptr&lt;f16&gt;, i64) -&gt; !llvm.ptr&lt;f16&gt;    %88 = llvm.bitcast %87 : !llvm.ptr&lt;f16&gt; to !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    llvm.intr.masked.store %86, %88, %76 {alignment = 2 : i32} : vector&lt;4xf16&gt;, vector&lt;4xi1&gt; into !llvm.ptr&lt;vector&lt;4xf16&gt;&gt;    llvm.br ^bb12  ^bb12:  // 2 preds: ^bb10, ^bb11    %89 = llvm.mul %2, %1  : i64    %90 = llvm.mul %arg1, %2  : i64    %91 = llvm.add %90, %11  : i64    %92 = llvm.mul %91, %1  : i64    %93 = llvm.add %89, %92  : i64    %94 = llvm.alloca %93 x i8 : (i64) -&gt; !llvm.ptr&lt;i8&gt;    %95 = llvm.bitcast %94 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    llvm.store %46, %95 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %96 = llvm.getelementptr %95[%11] : (!llvm.ptr&lt;ptr&lt;f16&gt;&gt;, i64) -&gt; !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    llvm.store %46, %96 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %97 = llvm.getelementptr %95[%2] : (!llvm.ptr&lt;ptr&lt;f16&gt;&gt;, i64) -&gt; !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %98 = llvm.bitcast %97 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt; to !llvm.ptr&lt;i64&gt;    llvm.store %10, %98 : !llvm.ptr&lt;i64&gt;    %99 = llvm.bitcast %94 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64, i64)&gt;&gt;    %100 = llvm.getelementptr %99[%10, 3] : (!llvm.ptr&lt;struct&lt;(ptr&lt;f16&gt;, ptr&lt;f16&gt;, i64, i64)&gt;&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %101 = llvm.getelementptr %100[%arg1] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %102 = llvm.sub %arg1, %11  : i64    llvm.br ^bb14(%102, %11 : i64, i64)  ^bb13:  // pred: ^bb6    %103 = llvm.mlir.addressof @error_message_2208944672953921889 : !llvm.ptr&lt;array&lt;42 x i8&gt;&gt;    %104 = llvm.getelementptr %103[%10, %10] : (!llvm.ptr&lt;array&lt;42 x i8&gt;&gt;, i64, i64) -&gt; !llvm.ptr&lt;i8&gt;    llvm.call @_mlir_ciface_tf_report_error(%arg0, %0, %104) : (!llvm.ptr&lt;i8&gt;, i32, !llvm.ptr&lt;i8&gt;) -&gt; ()    %105 = llvm.mul %2, %1  : i64    %106 = llvm.mul %2, %10  : i64    %107 = llvm.add %106, %11  : i64    %108 = llvm.mul %107, %1  : i64    %109 = llvm.add %105, %108  : i64    %110 = llvm.alloca %109 x i8 : (i64) -&gt; !llvm.ptr&lt;i8&gt;    %111 = llvm.bitcast %110 : !llvm.ptr&lt;i8&gt; to !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    llvm.store %13, %111 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %112 = llvm.getelementptr %111[%11] : (!llvm.ptr&lt;ptr&lt;f16&gt;&gt;, i64) -&gt; !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    llvm.store %13, %112 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %113 = llvm.getelementptr %111[%2] : (!llvm.ptr&lt;ptr&lt;f16&gt;&gt;, i64) -&gt; !llvm.ptr&lt;ptr&lt;f16&gt;&gt;    %114 = llvm.bitcast %113 : !llvm.ptr&lt;ptr&lt;f16&gt;&gt; to !llvm.ptr&lt;i64&gt;    llvm.store %10, %114 : !llvm.ptr&lt;i64&gt;    %115 = llvm.call @malloc(%109) : (i64) -&gt; !llvm.ptr&lt;i8&gt;    &quot;llvm.intr.memcpy&quot;(%115, %110, %109, %6) : (!llvm.ptr&lt;i8&gt;, !llvm.ptr&lt;i8&gt;, i64, i1) -&gt; ()    %116 = llvm.mlir.undef : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %117 = llvm.insertvalue %10, %116[0] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %118 = llvm.insertvalue %115, %117[1] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    llvm.return %118 : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;  ^bb14(%119: i64, %120: i64):  // 2 preds: ^bb12, ^bb15    %121 = llvm.icmp &quot;sge&quot; %119, %10 : i64    llvm.cond_br %121, ^bb15, ^bb16  ^bb15:  // pred: ^bb14    %122 = llvm.getelementptr %21[%119] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    %123 = llvm.load %122 : !llvm.ptr&lt;i64&gt;    %124 = llvm.getelementptr %100[%119] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    llvm.store %123, %124 : !llvm.ptr&lt;i64&gt;    %125 = llvm.getelementptr %101[%119] : (!llvm.ptr&lt;i64&gt;, i64) -&gt; !llvm.ptr&lt;i64&gt;    llvm.store %120, %125 : !llvm.ptr&lt;i64&gt;    %126 = llvm.mul %120, %123  : i64    %127 = llvm.sub %119, %11  : i64    llvm.br ^bb14(%127, %126 : i64, i64)  ^bb16:  // pred: ^bb14    %128 = llvm.call @malloc(%93) : (i64) -&gt; !llvm.ptr&lt;i8&gt;    &quot;llvm.intr.memcpy&quot;(%128, %94, %93, %6) : (!llvm.ptr&lt;i8&gt;, !llvm.ptr&lt;i8&gt;, i64, i1) -&gt; ()    %129 = llvm.mlir.undef : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %130 = llvm.insertvalue %arg1, %129[0] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %131 = llvm.insertvalue %128, %130[1] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    llvm.return %131 : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;  }  llvm.func @_mlir_ciface_Rsqrt_CPU_DT_HALF_DT_HALF(%arg0: !llvm.ptr&lt;struct&lt;(i64, ptr&lt;i8&gt;)&gt;&gt;, %arg1: !llvm.ptr&lt;i8&gt;, %arg2: !llvm.ptr&lt;struct&lt;(i64, ptr&lt;i8&gt;)&gt;&gt;) attributes {llvm.emit_c_interface, tf_entry} {    %0 = llvm.load %arg2 : !llvm.ptr&lt;struct&lt;(i64, ptr&lt;i8&gt;)&gt;&gt;    %1 = llvm.extractvalue %0[0] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %2 = llvm.extractvalue %0[1] : !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    %3 = llvm.call @Rsqrt_CPU_DT_HALF_DT_HALF(%arg1, %1, %2) : (!llvm.ptr&lt;i8&gt;, i64, !llvm.ptr&lt;i8&gt;) -&gt; !llvm.struct&lt;(i64, ptr&lt;i8&gt;)&gt;    llvm.store %3, %arg0 : !llvm.ptr&lt;struct&lt;(i64, ptr&lt;i8&gt;)&gt;&gt;    llvm.return  }}

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 15 Jun 2022 11:10:01 +0000</pubDate>
        <dc:creator>Thomas Joerg &lt;tjoerg@google.com&gt;</dc:creator>
    </item>
<item>
        <title>6e02e275 - Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#6e02e275</link>
        <description>Reland &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;Disabled 2 mlir tests due to the runtime doesn&apos;t support `_Float16`, seethe issue here https://github.com/llvm/llvm-project/issues/55992

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 15 Jun 2022 00:26:04 +0000</pubDate>
        <dc:creator>Phoebe Wang &lt;phoebe.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>5d8298a7 - Revert &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#5d8298a7</link>
        <description>Revert &quot;[X86][RFC] Enable `_Float16` type support on X86 following the psABI&quot;This reverts commit 2d2da259c8726fd5c974c01122a9689981a12196.This breaks MLIR integration test (JIT crashing), reverting in themeantime.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Sun, 12 Jun 2022 15:14:37 +0000</pubDate>
        <dc:creator>Mehdi Amini &lt;joker.eph@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2d2da259 - [X86][RFC] Enable `_Float16` type support on X86 following the psABI</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#2d2da259</link>
        <description>[X86][RFC] Enable `_Float16` type support on X86 following the psABIGCC and Clang/LLVM will support `_Float16` on X86 in C/C++, followingthe latest X86 psABI. (https://gitlab.com/x86-psABIs)_Float16 arithmetic will be performed using native half-precision. Ifnative arithmetic instructions are not available, it will be performedat a higher precision (currently always float) and then truncated downto _Float16 immediately after each single arithmetic operation.Reviewed By: LuoYuankeDifferential Revision: https://reviews.llvm.org/D107082

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Sat, 11 Jun 2022 15:19:25 +0000</pubDate>
        <dc:creator>Phoebe Wang &lt;phoebe.wang@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>f635be30 - X86/GlobalISel: Use LLT form of getMachineMemOperand</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#f635be30</link>
        <description>X86/GlobalISel: Use LLT form of getMachineMemOperand

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Thu, 31 Mar 2022 21:42:02 +0000</pubDate>
        <dc:creator>Matt Arsenault &lt;Matthew.Arsenault@amd.com&gt;</dc:creator>
    </item>
<item>
        <title>37b37838 - [NFC][CodeGen] Rename some functions in MachineInstr.h and remove duplicated comments</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#37b37838</link>
        <description>[NFC][CodeGen] Rename some functions in MachineInstr.h and remove duplicated comments

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 16 Mar 2022 12:21:25 +0000</pubDate>
        <dc:creator>Shengchen Kan &lt;shengchen.kan@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>cb216076 - [nfc][codegen] Move RegisterBank[Info].h under CodeGen</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#cb216076</link>
        <description>[nfc][codegen] Move RegisterBank[Info].h under CodeGenThis wraps up from D119053. The 2 headers are moved as described,fixed file headers and include guards, updated all files where the oldpaths were detected (simple grep through the repo), and `clang-format`-ed it all.Differential Revision: https://reviews.llvm.org/D119876

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Tue, 15 Feb 2022 19:54:38 +0000</pubDate>
        <dc:creator>Mircea Trofin &lt;mtrofin@google.com&gt;</dc:creator>
    </item>
<item>
        <title>f3a344d2 - [Target] Remove redundant member initialization (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#f3a344d2</link>
        <description>[Target] Remove redundant member initialization (NFC)Identified with readability-redundant-member-init.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 07 Jan 2022 06:01:44 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>e5947760 - Revert &quot;[llvm] Remove redundant member initialization (NFC)&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#e5947760</link>
        <description>Revert &quot;[llvm] Remove redundant member initialization (NFC)&quot;This reverts commit fd4808887ee47f3ec8a030e9211169ef4fb094c3.This patch causes gcc to issue a lot of warnings like:  warning: base class &#8216;class llvm::MCParsedAsmOperand&#8217; should be  explicitly initialized in the copy constructor [-Wextra]

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Mon, 03 Jan 2022 19:28:47 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>fd480888 - [llvm] Remove redundant member initialization (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#fd480888</link>
        <description>[llvm] Remove redundant member initialization (NFC)Identified with readability-redundant-member-init.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Sun, 02 Jan 2022 00:18:18 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d477a7c2 - GlobalISel/Utils: Refactor integer/float constant match functions</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#d477a7c2</link>
        <description>GlobalISel/Utils: Refactor integer/float constant match functionsRework getConstantstVRegValWithLookThrough in order to make it clear if weare matching integer/float constant only or any constant(default).Add helper functions that get DefVReg and APInt/APFloat from constant instrgetIConstantVRegValWithLookThrough: integer constant, only G_CONSTANTgetFConstantVRegValWithLookThrough: float constant, only G_FCONSTANTgetAnyConstantVRegValWithLookThrough: either G_CONSTANT or G_FCONSTANTRename getConstantVRegVal and getConstantVRegSExtVal to getIConstantVRegValand getIConstantVRegSExtVal. These now only match G_CONSTANT as describedin comment.Relevant matchers now return both DefVReg and APInt/APFloat.Replace existing uses of getConstantstVRegValWithLookThrough andgetConstantVRegVal with new helper functions. Any constant match isonly required in:ConstantFoldBinOp: for constant argument that was bit-cast of float to intgetAArch64VectorSplat: AArch64::G_DUP operands can be any constantamdgpu select for G_BUILD_VECTOR_TRUNC: operands can be any constantIn other places use integer only constant match.Differential Revision: https://reviews.llvm.org/D104409

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 17 Sep 2021 09:21:55 +0000</pubDate>
        <dc:creator>Petar Avramovic &lt;Petar.Avramovic@amd.com&gt;</dc:creator>
    </item>
<item>
        <title>b934160a - [Target] Use llvm::find_if (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#b934160a</link>
        <description>[Target] Use llvm::find_if (NFC)

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Fri, 08 Jan 2021 04:29:35 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>581d13f8 - GlobalISel: Return APInt from getConstantVRegVal</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#581d13f8</link>
        <description>GlobalISel: Return APInt from getConstantVRegValReturning int64_t was arbitrarily limiting for wide integer types, andthe functions should handle the full generality of the IR.Also changes the full form which returns the originally definedvreg. Add another wrapper for the common case of just immediatelyconverting to int64_t (arguably this would be useful for the fullreturn value case as well).One possible issue with this change is some of the existing uses didbreak without conversion to getConstantVRegSExtVal, and it&apos;s possiblesome without adequate test coverage are now broken.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Tue, 03 Nov 2020 14:50:17 +0000</pubDate>
        <dc:creator>Matt Arsenault &lt;Matthew.Arsenault@amd.com&gt;</dc:creator>
    </item>
<item>
        <title>3726b144 - [NFC] Use [MC]Register for x86 target</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#3726b144</link>
        <description>[NFC] Use [MC]Register for x86 targetDifferential Revision: https://reviews.llvm.org/D91161

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Thu, 05 Nov 2020 03:14:59 +0000</pubDate>
        <dc:creator>Gaurav Jain &lt;gjn@google.com&gt;</dc:creator>
    </item>
<item>
        <title>6b3dc96e - [X86][GlobalISel] Replace a misuse of SUBREG_TO_REG with INSERT_SUBREG.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp#6b3dc96e</link>
        <description>[X86][GlobalISel] Replace a misuse of SUBREG_TO_REG with INSERT_SUBREG.SUBREG_TO_REG is supposed to be used when we know the producinginstruction already zeroed the bits we&apos;re extending. But that&apos;snot the case here. So INSERT_SUBREG with an IMPLICIT_DEF is thecorrect thing to use.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/X86/X86InstructionSelector.cpp</description>
        <pubDate>Wed, 12 Aug 2020 06:39:13 +0000</pubDate>
        <dc:creator>Craig Topper &lt;craig.topper@intel.com&gt;</dc:creator>
    </item>
</channel>
</rss>
