@@ -361,7 +361,11 @@ multiclass RVVNonTupleVCreateBuiltin<int dst_lmul, list<int> src_lmul_list> {
361
361
defvar src_s = FixedVString<src_lmul, num, "v">.S;
362
362
def vcreate # src_v # dst_v : RVVBuiltin<src_v # dst_v,
363
363
dst_v # src_s,
364
- "csilxfd">;
364
+ "csilfd">;
365
+ let RequiredFeatures = ["Zvfhmin"] in
366
+ def vcreate_h # src_v # dst_v : RVVBuiltin<src_v # dst_v,
367
+ dst_v # src_s,
368
+ "x", dst_v>;
365
369
let RequiredFeatures = ["Zvfbfmin"] in
366
370
def vcreate_bf16 # src_v # dst_v : RVVBuiltin<src_v # dst_v,
367
371
dst_v # src_s,
@@ -2474,15 +2478,19 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2474
2478
ManualCodegen = [{
2475
2479
return llvm::PoisonValue::get(ResultType);
2476
2480
}] in {
2477
- def vundefined : RVVBuiltin<"v", "v", "csilxfd">;
2481
+ def vundefined : RVVBuiltin<"v", "v", "csilfd">;
2482
+ let RequiredFeatures = ["Zvfhmin"] in
2483
+ def vundefined_h : RVVBuiltin<"v", "v", "x">;
2478
2484
let RequiredFeatures = ["Zvfbfmin"] in
2479
2485
def vundefined_bf16 : RVVBuiltin<"v", "v", "y">;
2480
2486
def vundefined_u : RVVBuiltin<"Uv", "Uv", "csil">;
2481
2487
2482
2488
foreach nf = NFList in {
2483
2489
let NF = nf in {
2484
2490
defvar T = "(Tuple:" # nf # ")";
2485
- def : RVVBuiltin<T # "v", T # "v", "csilxfd">;
2491
+ def : RVVBuiltin<T # "v", T # "v", "csilfd">;
2492
+ let RequiredFeatures = ["Zvfhmin"] in
2493
+ def : RVVBuiltin<T # "v", T # "v", "x">;
2486
2494
let RequiredFeatures = ["Zvfbfmin"] in
2487
2495
def : RVVBuiltin<T # "v", T # "v", "y">;
2488
2496
def : RVVBuiltin<T # "Uv", T # "Uv", "csil">;
@@ -2502,7 +2510,10 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2502
2510
foreach dst_lmul = ["(SFixedLog2LMUL:-3)", "(SFixedLog2LMUL:-2)", "(SFixedLog2LMUL:-1)",
2503
2511
"(SFixedLog2LMUL:0)", "(SFixedLog2LMUL:1)", "(SFixedLog2LMUL:2)"] in {
2504
2512
def vlmul_trunc # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2505
- dst_lmul # "vv", "csilxfd", dst_lmul # "v">;
2513
+ dst_lmul # "vv", "csilfd", dst_lmul # "v">;
2514
+ let RequiredFeatures = ["Zvfhmin"] in
2515
+ def vlmul_trunc_h # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2516
+ dst_lmul # "vv", "x", dst_lmul # "v">;
2506
2517
let RequiredFeatures = ["Zvfbfmin"] in
2507
2518
def vlmul_trunc_bf16 # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2508
2519
dst_lmul # "vv", "y", dst_lmul # "v">;
@@ -2523,7 +2534,10 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2523
2534
foreach dst_lmul = ["(LFixedLog2LMUL:-2)", "(LFixedLog2LMUL:-1)", "(LFixedLog2LMUL:-0)",
2524
2535
"(LFixedLog2LMUL:1)", "(LFixedLog2LMUL:2)", "(LFixedLog2LMUL:3)"] in {
2525
2536
def vlmul_ext # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2526
- dst_lmul # "vv", "csilxfd", dst_lmul # "v">;
2537
+ dst_lmul # "vv", "csilfd", dst_lmul # "v">;
2538
+ let RequiredFeatures = ["Zvfhmin"] in
2539
+ def vlmul_ext_h # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2540
+ dst_lmul # "vv", "x", dst_lmul # "v">;
2527
2541
let RequiredFeatures = ["Zvfbfmin"] in
2528
2542
def vlmul_ext_bf16 # dst_lmul : RVVBuiltin<"v" # dst_lmul # "v",
2529
2543
dst_lmul # "vv", "y", dst_lmul # "v">;
@@ -2555,14 +2569,18 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2555
2569
}
2556
2570
}] in {
2557
2571
foreach dst_lmul = ["(SFixedLog2LMUL:0)", "(SFixedLog2LMUL:1)", "(SFixedLog2LMUL:2)"] in {
2558
- def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "vvKz", "csilxfd", dst_lmul # "v">;
2572
+ def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "vvKz", "csilfd", dst_lmul # "v">;
2573
+ let RequiredFeatures = ["Zvfhmin"] in
2574
+ def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "vvKz", "x", dst_lmul # "v">;
2559
2575
let RequiredFeatures = ["Zvfbfmin"] in
2560
2576
def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "vvKz", "y", dst_lmul # "v">;
2561
2577
def : RVVBuiltin<"Uv" # dst_lmul # "Uv", dst_lmul # "UvUvKz", "csil", dst_lmul # "Uv">;
2562
2578
}
2563
2579
foreach nf = NFList in {
2564
2580
defvar T = "(Tuple:" # nf # ")";
2565
- def : RVVBuiltin<T # "vv", "v" # T # "vKz", "csilxfd", "v">;
2581
+ def : RVVBuiltin<T # "vv", "v" # T # "vKz", "csilfd", "v">;
2582
+ let RequiredFeatures = ["Zvfhmin"] in
2583
+ def : RVVBuiltin<T # "vv", "v" # T # "vKz", "x", "v">;
2566
2584
let RequiredFeatures = ["Zvfbfmin"] in
2567
2585
def : RVVBuiltin<T # "vv", "v" # T # "vKz", "y", "v">;
2568
2586
def : RVVBuiltin<T # "UvUv", "Uv" # T # "UvKz", "csil", "Uv">;
@@ -2592,14 +2610,18 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2592
2610
}
2593
2611
}] in {
2594
2612
foreach dst_lmul = ["(LFixedLog2LMUL:1)", "(LFixedLog2LMUL:2)", "(LFixedLog2LMUL:3)"] in {
2595
- def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "v" # dst_lmul # "vKzv", "csilxfd">;
2613
+ def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "v" # dst_lmul # "vKzv", "csilfd">;
2614
+ let RequiredFeatures = ["Zvfhmin"] in
2615
+ def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "v" # dst_lmul # "vKzv", "x">;
2596
2616
let RequiredFeatures = ["Zvfbfmin"] in
2597
2617
def : RVVBuiltin<"v" # dst_lmul # "v", dst_lmul # "v" # dst_lmul # "vKzv", "y">;
2598
2618
def : RVVBuiltin<"Uv" # dst_lmul # "Uv", dst_lmul # "Uv" # dst_lmul #"UvKzUv", "csil">;
2599
2619
}
2600
2620
foreach nf = NFList in {
2601
2621
defvar T = "(Tuple:" # nf # ")";
2602
- def : RVVBuiltin<"v" # T # "v", T # "v" # T # "vKzv", "csilxfd">;
2622
+ def : RVVBuiltin<"v" # T # "v", T # "v" # T # "vKzv", "csilfd">;
2623
+ let RequiredFeatures = ["Zvfhmin"] in
2624
+ def : RVVBuiltin<"v" # T # "v", T # "v" # T # "vKzv", "x">;
2603
2625
let RequiredFeatures = ["Zvfbfmin"] in
2604
2626
def : RVVBuiltin<"v" # T # "v", T # "v" # T # "vKzv", "y">;
2605
2627
def : RVVBuiltin<"Uv" # T # "Uv", T # "Uv" # T # "UvKzUv", "csil">;
@@ -2646,7 +2668,9 @@ let HasMasked = false, HasVL = false, IRName = "" in {
2646
2668
defvar T = "(Tuple:" # nf # ")";
2647
2669
defvar V = VString<nf, /*signed=*/true>.S;
2648
2670
defvar UV = VString<nf, /*signed=*/false>.S;
2649
- def : RVVBuiltin<T # "v", T # "v" # V, "csilxfd">;
2671
+ def : RVVBuiltin<T # "v", T # "v" # V, "csilfd">;
2672
+ let RequiredFeatures = ["Zvfhmin"] in
2673
+ def : RVVBuiltin<T # "v", T # "v" # V, "x">;
2650
2674
let RequiredFeatures = ["Zvfbfmin"] in
2651
2675
def : RVVBuiltin<T # "v", T # "v" # V, "y">;
2652
2676
def : RVVBuiltin<T # "Uv", T # "Uv" # UV, "csil">;
0 commit comments