================ @@ -28,3 +28,102 @@ define i32 @test3(ptr %ptr) { %val = load atomic i32, ptr %ptr seq_cst, align 4 ret i32 %val } + +define <1 x i32> @atomic_vec1_i32(ptr %x) { +; CHECK-LABEL: atomic_vec1_i32: +; CHECK: ## %bb.0: +; CHECK-NEXT: movl (%rdi), %eax +; CHECK-NEXT: retq + %ret = load atomic <1 x i32>, ptr %x acquire, align 4 + ret <1 x i32> %ret +} + +define <1 x i8> @atomic_vec1_i8(ptr %x) { +; CHECK3-LABEL: atomic_vec1_i8: +; CHECK3: ## %bb.0: +; CHECK3-NEXT: movzbl (%rdi), %eax +; CHECK3-NEXT: retq +; +; CHECK0-LABEL: atomic_vec1_i8: +; CHECK0: ## %bb.0: +; CHECK0-NEXT: movb (%rdi), %al +; CHECK0-NEXT: retq + %ret = load atomic <1 x i8>, ptr %x acquire, align 4 + ret <1 x i8> %ret +} + +define <1 x i16> @atomic_vec1_i16(ptr %x) { +; CHECK3-LABEL: atomic_vec1_i16: +; CHECK3: ## %bb.0: +; CHECK3-NEXT: movzwl (%rdi), %eax +; CHECK3-NEXT: retq +; +; CHECK0-LABEL: atomic_vec1_i16: +; CHECK0: ## %bb.0: +; CHECK0-NEXT: movw (%rdi), %ax +; CHECK0-NEXT: retq + %ret = load atomic <1 x i16>, ptr %x acquire, align 4 + ret <1 x i16> %ret +} + +define <1 x i32> @atomic_vec1_i8_zext(ptr %x) { +; CHECK3-LABEL: atomic_vec1_i8_zext: +; CHECK3: ## %bb.0: +; CHECK3-NEXT: movzbl (%rdi), %eax +; CHECK3-NEXT: movzbl %al, %eax +; CHECK3-NEXT: retq +; +; CHECK0-LABEL: atomic_vec1_i8_zext: +; CHECK0: ## %bb.0: +; CHECK0-NEXT: movb (%rdi), %al +; CHECK0-NEXT: movzbl %al, %eax +; CHECK0-NEXT: retq + %ret = load atomic <1 x i8>, ptr %x acquire, align 4 + %zret = zext <1 x i8> %ret to <1 x i32> + ret <1 x i32> %zret +} + +define <1 x i64> @atomic_vec1_i16_sext(ptr %x) { +; CHECK3-LABEL: atomic_vec1_i16_sext: +; CHECK3: ## %bb.0: +; CHECK3-NEXT: movzwl (%rdi), %eax +; CHECK3-NEXT: movswq %ax, %rax +; CHECK3-NEXT: retq +; +; CHECK0-LABEL: atomic_vec1_i16_sext: +; CHECK0: ## %bb.0: +; CHECK0-NEXT: movw (%rdi), %ax +; CHECK0-NEXT: movswq %ax, %rax +; CHECK0-NEXT: retq + %ret = load atomic <1 x i16>, ptr %x acquire, align 4 ---------------- arsenm wrote:
Over aligned (but doesn't really matter) https://github.com/llvm/llvm-project/pull/120385 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits