@@ -1148,13 +1148,21 @@ define <2 x float> @ld1_2s_float(<2 x float> %V, ptr %bar) {
11481148
11491149; Add rdar://13098923 test case: vld1_dup_u32 doesn't generate ld1r.2s
11501150define void @ld1r_2s_from_dup (ptr nocapture %a , ptr nocapture %b , ptr nocapture %diff ) nounwind ssp {
1151- ; CHECK-LABEL: ld1r_2s_from_dup:
1152- ; CHECK: // %bb.0: // %entry
1153- ; CHECK-NEXT: ld1r.2s { v0 }, [x0]
1154- ; CHECK-NEXT: ld1r.2s { v1 }, [x1]
1155- ; CHECK-NEXT: usubl.8h v0, v0, v1
1156- ; CHECK-NEXT: str d0, [x2]
1157- ; CHECK-NEXT: ret
1151+ ; CHECK-SD-LABEL: ld1r_2s_from_dup:
1152+ ; CHECK-SD: // %bb.0: // %entry
1153+ ; CHECK-SD-NEXT: ldr s0, [x0]
1154+ ; CHECK-SD-NEXT: ldr s1, [x1]
1155+ ; CHECK-SD-NEXT: usubl.8h v0, v0, v1
1156+ ; CHECK-SD-NEXT: str d0, [x2]
1157+ ; CHECK-SD-NEXT: ret
1158+ ;
1159+ ; CHECK-GI-LABEL: ld1r_2s_from_dup:
1160+ ; CHECK-GI: // %bb.0: // %entry
1161+ ; CHECK-GI-NEXT: ld1r.2s { v0 }, [x0]
1162+ ; CHECK-GI-NEXT: ld1r.2s { v1 }, [x1]
1163+ ; CHECK-GI-NEXT: usubl.8h v0, v0, v1
1164+ ; CHECK-GI-NEXT: str d0, [x2]
1165+ ; CHECK-GI-NEXT: ret
11581166entry:
11591167 %tmp1 = load i32 , ptr %a , align 4
11601168 %tmp2 = insertelement <2 x i32 > undef , i32 %tmp1 , i32 0
0 commit comments