@@ -2449,82 +2449,72 @@ define i32 @memcmp_size_3(ptr %s1, ptr %s2) nounwind optsize {
24492449;
24502450; CHECK-UNALIGNED-RV32-ZBB-LABEL: memcmp_size_3:
24512451; CHECK-UNALIGNED-RV32-ZBB: # %bb.0: # %entry
2452- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lh a2, 0(a0)
2453- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lh a3, 0(a1)
2454- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a2, a2
2455- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a3, a3
2456- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: srli a2, a2, 16
2457- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: srli a3, a3, 16
2458- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: bne a2, a3, .LBB24_2
2459- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: # %bb.1: # %loadbb1
2460- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lbu a0, 2(a0)
2461- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lbu a1, 2(a1)
2462- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a0, a0, a1
2463- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
2464- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: .LBB24_2: # %res_block
2465- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a2, a3
2466- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: neg a0, a0
2467- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: ori a0, a0, 1
2452+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lbu a2, 2(a0)
2453+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lhu a0, 0(a0)
2454+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lbu a3, 2(a1)
2455+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: lhu a1, 0(a1)
2456+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slli a2, a2, 16
2457+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: or a0, a0, a2
2458+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slli a3, a3, 16
2459+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: or a1, a1, a3
2460+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
2461+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
2462+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a1, a0
2463+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a0, a1
2464+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a0, a2, a0
24682465; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
24692466;
24702467; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_size_3:
24712468; CHECK-UNALIGNED-RV64-ZBB: # %bb.0: # %entry
2472- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lh a2, 0(a0)
2473- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lh a3, 0(a1)
2474- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a2, a2
2475- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a3, a3
2476- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a2, a2, 48
2477- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a3, a3, 48
2478- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: bne a2, a3, .LBB24_2
2479- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: # %bb.1: # %loadbb1
2480- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a0, 2(a0)
2481- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a1, 2(a1)
2482- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a0, a1
2483- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
2484- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: .LBB24_2: # %res_block
2485- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a2, a3
2486- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: neg a0, a0
2487- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ori a0, a0, 1
2469+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a2, 2(a0)
2470+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lhu a0, 0(a0)
2471+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a3, 2(a1)
2472+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lhu a1, 0(a1)
2473+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a2, a2, 16
2474+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a0, a0, a2
2475+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a3, a3, 16
2476+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a1, a1, a3
2477+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a0, a0
2478+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
2479+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
2480+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
2481+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a1, a0
2482+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
2483+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a2, a0
24882484; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
24892485;
24902486; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_size_3:
24912487; CHECK-UNALIGNED-RV32-ZBKB: # %bb.0: # %entry
2492- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lh a2, 0(a0)
2493- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lh a3, 0(a1)
2494- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a2, a2
2495- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a3, a3
2496- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: srli a2, a2, 16
2497- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: srli a3, a3, 16
2498- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: bne a2, a3, .LBB24_2
2499- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: # %bb.1: # %loadbb1
2488+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lhu a2, 0(a0)
25002489; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lbu a0, 2(a0)
2490+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lhu a3, 0(a1)
25012491; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lbu a1, 2(a1)
2502- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a0, a0, a1
2503- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
2504- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: .LBB24_2: # %res_block
2505- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a2, a3
2506- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: neg a0, a0
2507- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ori a0, a0, 1
2492+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: pack a0, a2, a0
2493+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: pack a1, a3, a1
2494+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
2495+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
2496+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a1, a0
2497+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a0, a1
2498+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a0, a2, a0
25082499; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
25092500;
25102501; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_size_3:
25112502; CHECK-UNALIGNED-RV64-ZBKB: # %bb.0: # %entry
2512- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lh a2, 0(a0)
2513- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lh a3, 0(a1)
2514- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a2, a2
2515- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a3, a3
2516- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a2, a2, 48
2517- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a3, a3, 48
2518- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: bne a2, a3, .LBB24_2
2519- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: # %bb.1: # %loadbb1
2520- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a0, 2(a0)
2521- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a1, 2(a1)
2522- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a0, a1
2523- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
2524- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: .LBB24_2: # %res_block
2525- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a2, a3
2526- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: neg a0, a0
2527- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ori a0, a0, 1
2503+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a2, 2(a0)
2504+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lhu a0, 0(a0)
2505+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a3, 2(a1)
2506+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lhu a1, 0(a1)
2507+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slli a2, a2, 16
2508+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: or a0, a0, a2
2509+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slli a3, a3, 16
2510+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: or a1, a1, a3
2511+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a0, a0
2512+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
2513+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
2514+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
2515+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a1, a0
2516+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
2517+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a2, a0
25282518; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
25292519;
25302520; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_size_3:
@@ -2845,22 +2835,19 @@ define i32 @memcmp_size_5(ptr %s1, ptr %s2) nounwind optsize {
28452835;
28462836; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_size_5:
28472837; CHECK-UNALIGNED-RV64-ZBB: # %bb.0: # %entry
2848- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lw a2, 0(a0)
2849- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lw a3, 0(a1)
2850- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a2, a2
2851- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a3, a3
2852- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a2, a2, 32
2853- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a3, a3, 32
2854- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: bne a2, a3, .LBB26_2
2855- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: # %bb.1: # %loadbb1
2856- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a0, 4(a0)
2857- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a1, 4(a1)
2858- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a0, a1
2859- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
2860- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: .LBB26_2: # %res_block
2861- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a2, a3
2862- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: neg a0, a0
2863- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ori a0, a0, 1
2838+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a2, 4(a0)
2839+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lwu a0, 0(a0)
2840+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lbu a3, 4(a1)
2841+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lwu a1, 0(a1)
2842+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a2, a2, 32
2843+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a0, a0, a2
2844+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a3, a3, 32
2845+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a1, a1, a3
2846+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a0, a0
2847+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
2848+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a1, a0
2849+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
2850+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a2, a0
28642851; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
28652852;
28662853; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_size_5:
@@ -2883,22 +2870,17 @@ define i32 @memcmp_size_5(ptr %s1, ptr %s2) nounwind optsize {
28832870;
28842871; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_size_5:
28852872; CHECK-UNALIGNED-RV64-ZBKB: # %bb.0: # %entry
2886- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lw a2, 0(a0)
2887- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lw a3, 0(a1)
2888- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a2, a2
2889- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a3, a3
2890- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a2, a2, 32
2891- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a3, a3, 32
2892- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: bne a2, a3, .LBB26_2
2893- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: # %bb.1: # %loadbb1
2873+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lwu a2, 0(a0)
28942874; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a0, 4(a0)
2875+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lwu a3, 0(a1)
28952876; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lbu a1, 4(a1)
2896- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a0, a1
2897- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
2898- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: .LBB26_2: # %res_block
2899- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a2, a3
2900- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: neg a0, a0
2901- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ori a0, a0, 1
2877+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: pack a0, a2, a0
2878+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: pack a1, a3, a1
2879+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a0, a0
2880+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
2881+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a1, a0
2882+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
2883+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a2, a0
29022884; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
29032885;
29042886; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_size_5:
@@ -3052,28 +3034,19 @@ define i32 @memcmp_size_6(ptr %s1, ptr %s2) nounwind optsize {
30523034;
30533035; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_size_6:
30543036; CHECK-UNALIGNED-RV64-ZBB: # %bb.0: # %entry
3055- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lw a2, 0(a0)
3056- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lw a3, 0(a1)
3057- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a2, a2
3058- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a3, a3
3059- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a2, a2, 32
3060- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a3, a3, 32
3061- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: bne a2, a3, .LBB27_3
3062- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: # %bb.1: # %loadbb1
3063- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lh a0, 4(a0)
3064- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lh a1, 4(a1)
3065- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a2, a0
3066- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a3, a1
3067- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a2, a2, 48
3068- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a3, a3, 48
3069- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: bne a2, a3, .LBB27_3
3070- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: # %bb.2:
3071- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: li a0, 0
3072- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
3073- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: .LBB27_3: # %res_block
3074- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a2, a3
3075- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: neg a0, a0
3076- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: ori a0, a0, 1
3037+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lhu a2, 4(a0)
3038+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lwu a0, 0(a0)
3039+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lhu a3, 4(a1)
3040+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: lwu a1, 0(a1)
3041+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a2, a2, 32
3042+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a0, a0, a2
3043+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slli a3, a3, 32
3044+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: or a1, a1, a3
3045+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a0, a0
3046+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
3047+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a1, a0
3048+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
3049+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a2, a0
30773050; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
30783051;
30793052; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_size_6:
@@ -3102,28 +3075,17 @@ define i32 @memcmp_size_6(ptr %s1, ptr %s2) nounwind optsize {
31023075;
31033076; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_size_6:
31043077; CHECK-UNALIGNED-RV64-ZBKB: # %bb.0: # %entry
3105- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lw a2, 0(a0)
3106- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lw a3, 0(a1)
3107- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a2, a2
3108- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a3, a3
3109- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a2, a2, 32
3110- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a3, a3, 32
3111- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: bne a2, a3, .LBB27_3
3112- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: # %bb.1: # %loadbb1
3113- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lh a0, 4(a0)
3114- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lh a1, 4(a1)
3115- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a2, a0
3116- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a3, a1
3117- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a2, a2, 48
3118- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a3, a3, 48
3119- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: bne a2, a3, .LBB27_3
3120- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: # %bb.2:
3121- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: li a0, 0
3122- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
3123- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: .LBB27_3: # %res_block
3124- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a2, a3
3125- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: neg a0, a0
3126- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ori a0, a0, 1
3078+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lwu a2, 0(a0)
3079+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lhu a0, 4(a0)
3080+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lwu a3, 0(a1)
3081+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: lhu a1, 4(a1)
3082+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: pack a0, a2, a0
3083+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: pack a1, a3, a1
3084+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a0, a0
3085+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
3086+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a1, a0
3087+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
3088+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a2, a0
31273089; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
31283090;
31293091; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_size_6:
0 commit comments